<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Partielle_Klasse</id>
	<title>Partielle Klasse - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Partielle_Klasse"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Partielle_Klasse&amp;action=history"/>
	<updated>2026-06-09T01:08:42Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Partielle_Klasse&amp;diff=1525774&amp;oldid=prev</id>
		<title>imported&gt;Siegbert v2: /* Programmiersprachen */ BKS aufgelöst</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Partielle_Klasse&amp;diff=1525774&amp;oldid=prev"/>
		<updated>2025-06-23T08:37:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Programmiersprachen: &lt;/span&gt; BKS aufgelöst&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;Partielle Klasse&amp;#039;&amp;#039;&amp;#039; ist ein Begriff aus der [[Objektorientierte Programmierung|objektorientierten Programmierung]] und bezeichnet eine Vorgangsweise, [[Klasse (Objektorientierung)|Klassen]] in mehrere [[Quellcode]]dateien aufzuteilen oder an verschiedenen Orten innerhalb einer Datei zu deklarieren.&amp;lt;ref&amp;gt;{{Literatur |Autor=Mikael Olsson |Titel=C#&amp;amp;nbsp;10 Quick Syntax Reference: A Pocket Guide to the Language, APIs, and Library |Auflage=4 |Verlag=Apress |Ort=Berkeley |Datum=2022 |Sprache=en |ISBN=978-1-4842-7980-9 |Kapitel=Chapter&amp;amp;nbsp;10: Class&amp;amp;nbsp;– Partial Class |Seiten=55 f}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gründe ==&lt;br /&gt;
* Erhöhung der Lesbarkeit bei sehr großen Klassen.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.webdevtutor.net/blog/c-sharp-partial-class |titel=Understanding C# Partial Classes: A Comprehensive Guide |werk=webdevtutor.net |datum=2024-08-07 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt; Unter Umständen kann sich eine zu starke Aufteilung des Codes negativ auf das Codeverständnis auswirken, da mehrere Dateien parallel betrachtet werden müssen, um das Gesamtbild zu erhalten.&amp;lt;ref name=&amp;quot;Boltsis2025&amp;quot;&amp;gt;{{Internetquelle |autor=Evangelos Boltsis |url=https://codingbolt.net/2025/02/22/partial-classes-and-methods-in-c-when-and-why/ |titel=Partial Classes and Methods in C#: When and Why |werk=codingbolt.net |datum=2025-02-22 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Verschiedene Entwickler können an derselben Klasse arbeiten, ohne sich gegenseitig zu behindern.&amp;lt;ref name=&amp;quot;MS-Learn-CS&amp;quot;&amp;gt;{{Internetquelle |url=https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods |titel=Partial Classes and Members (C# Programming Guide) |werk=learn.microsoft.com |hrsg=Microsoft |datum=2025-03-15 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Separation von Schnittstelle und Klassendefinition oder auch von public und private Bereichen.&lt;br /&gt;
* [[Cross-Cutting Concern#Separation of Concerns|Separation of Concerns]], ähnlich wie in der [[Aspektorientierte Programmierung|aspektorientierten]] Programmierung.&amp;lt;ref name=&amp;quot;Smith2023&amp;quot;&amp;gt;{{Literatur |Autor=Steve Smith |Titel=Architecting Modern Web Applications with ASP.NET Core and Azure |Hrsg=Maira Wenzel |Auflage=8 |Verlag=Microsoft |Ort=Redmond |Datum=2023 |Sprache=en |Kapitel=Chapter&amp;amp;nbsp;3: Architectural principles&amp;amp;nbsp;– Separation of concerns |Seiten=20 |Online=[https://raw.githubusercontent.com/dotnet-architecture/eBooks/main/current/architecting-modern-web-apps-azure/Architecting-Modern-Web-Applications-with-ASP.NET-Core-and-Azure.pdf Volltext] |Format=PDF |KBytes=3100 |Abruf=2025-06-23}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Trennung von automatisch erzeugtem Code eines [[Codegenerator]]s und manuell vom Menschen geschriebenem Code.&amp;lt;ref name=&amp;quot;MS-Learn-CS&amp;quot; /&amp;gt; Der generierte Code kann so einfacher jederzeit aktualisiert werden, ohne dass sich beide Stellen gegenseitig stören.&lt;br /&gt;
&lt;br /&gt;
== Programmiersprachen ==&lt;br /&gt;
Das Konzept der partiellen Klassen wird vor allem von [[Programmiersprache]]n der Firma [[Microsoft]] für die [[.NET (Plattform)|.NET-Plattform]], das [[.Net-Framework]] und die [[Windows Runtime]] (WinRT) unterstützt. Dazu zählen [[CSharp|C#]], [[Visual Basic .NET]], [[C++/CLI]] und [[C++/CX]].&amp;lt;ref name=&amp;quot;MS-Learn-CS&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;MS-Learn-VB&amp;quot;&amp;gt;{{Internetquelle |url=https://learn.microsoft.com/en-us/dotnet/visual-basic/language-reference/modifiers/partial |titel=Partial (Visual Basic) |werk=learn.microsoft.com |hrsg=Microsoft |datum=2021-09-15 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;MS-Learn-CPP-CLI&amp;quot;&amp;gt;{{Internetquelle |url=https://learn.microsoft.com/en-us/cpp/extensions/partial-cpp-component-extensions |titel=partial (C++/CLI and C++/CX) |werk=learn.microsoft.com |hrsg=Microsoft |datum=2021-08-03 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;MS-Learn-CPP-CX&amp;quot;&amp;gt;{{Internetquelle |url=https://learn.microsoft.com/en-us/cpp/cppcx/partial-classes-c-cx |titel=Partial classes (C++/CX) |werk=learn.microsoft.com |hrsg=Microsoft |datum=2022-12-01 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt; In diesen Programmiersprachen müssen betroffene Klassen explizit mit dem [[Schlüsselwort (Programmierung)|Schlüsselwort]] &amp;lt;code&amp;gt;partial&amp;lt;/code&amp;gt; gekennzeichnet werden. Auch [[TypeScript]] unterstützt partielle Klassen. Die Kennzeichnung erfolgt jedoch implizit, indem Teilklassen einfach denselben Namen tragen müssen.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.webdevtutor.net/blog/typescript-partial-class |titel=Understanding TypeScript Partial Classes |werk=webdevtutor.net |datum=2024-12-14 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt; Das Verfahren wird hier als &amp;#039;&amp;#039;Declaration Merging&amp;#039;&amp;#039; bezeichnet.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.typescriptlang.org/docs/handbook/declaration-merging.html |titel=Declaration Merging |werk=typescriptlang.org |datum=2025-06-19 |sprache=en |abruf=2025-06-23}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Separation of Concerns ==&lt;br /&gt;
Partielle Klassen unterstützen auch &amp;#039;&amp;#039;Separation of Concerns&amp;#039;&amp;#039;. Das folgende C#-Beispiel zeigt eine Klasse &amp;#039;&amp;#039;Bear&amp;#039;&amp;#039;, die verschiedene Aspekte besitzt. Diese sind in mehreren Dateien implementiert.&lt;br /&gt;
&lt;br /&gt;
;Bear_Hunting.cs:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
public partial class Bear&lt;br /&gt;
{&lt;br /&gt;
   private IEdible Hunt()&lt;br /&gt;
   {&lt;br /&gt;
       // Gibt Nahrung zurück...&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Bear_Eating.cs:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
public partial class Bear&lt;br /&gt;
{&lt;br /&gt;
   private int Eat(IEdible food)&lt;br /&gt;
   {&lt;br /&gt;
       return food.Nutrition.Value;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Bear_Hunger.cs:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
public partial class Bear&lt;br /&gt;
{&lt;br /&gt;
   private int hunger;&lt;br /&gt;
&lt;br /&gt;
   public void MonitorHunger()&lt;br /&gt;
   {&lt;br /&gt;
        // An dieser Stelle beziehen wir uns auf Methoden, die in den anderen partiellen Klassen definiert sind&lt;br /&gt;
        if(hunger &amp;gt; 50)&lt;br /&gt;
            hunger -= this.Eat(this.Hunt());&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Durch Anwendung von partiellen Klassen ist es sehr leicht möglich, Programmeigenschaften durch das Hinzufügen von Quellcodedateien zu erweitern, indem zusätzliche Dateien kompiliert werden. Es kann sich dabei beispielsweise um Features handeln, die einem Kunden gegen einen Aufpreis angeboten werden.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Erweiterungsmethode]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Objektorientierte Programmierung]]&lt;br /&gt;
&lt;br /&gt;
[[en:Class (computer programming)#Partial]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Siegbert v2</name></author>
	</entry>
</feed>