|
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
|
Übersetzung
Original
|
Partielle Klassen und Methoden (C#-Programmierhandbuch)
-
Beim Arbeiten an großen Projekten ermöglicht das Aufteilen einer Klasse auf verschiedene Dateien mehreren Programmierern, gleichzeitig daran zu arbeiten. -
Beim Arbeiten mit einer automatisch generierten Quelle kann der Klasse Code hinzugefügt werden, ohne die Quelldatei neu erstellen zu müssen. Visual Studio verwendet diesen Ansatz beim Erstellen von Windows Forms, Webdienst-Wrappercode usw. Dadurch können Sie Code erstellen, der diese Klassen verwendet, ohne die von Visual Studio erstellte Datei ändern zu müssen. -
Um eine Klassendefinition aufzuteilen, verwenden Sie den Modifizierer des partial-Schlüsselworts, wie im folgenden Beispiel gezeigt:
public partial class Employee { public void DoWork() { } } public partial class Employee { public void GoToLunch() { } }
Hinweis
|
|---|
|
|
class Container { partial class Nested { void Test() { } } partial class Nested { void Test2() { } } }
[SerializableAttribute] partial class Moon { } [ObsoleteAttribute] partial class Moon { }
[SerializableAttribute]
[ObsoleteAttribute]
class Moon { }
-
XML-Kommentare -
interfaces -
Generische Typparameterattribute -
Klassenattribute -
Member
partial class Earth : Planet, IRotate { } partial class Earth : IRevolve { }
class Earth : Planet, IRotate, IRevolve { }
Beschränkungen
-
Alle partiellen Typdefinitionen, die als Teile des gleichen Typs vorgesehen sind, müssen mit partial bearbeitet werden. Durch folgende Klassendeklarationen wird z. B. ein Fehler verursacht: public partial class A { } //public class tcA { } // Error, must also be marked partial
-
Der partial-Modifizierer kann nur unmittelbar vor den Schlüsselwörtern class, struct oder interface stehen. -
Geschachtelte partielle Typen sind in Definitionen des partiellen Typs zulässig, wie im folgenden Beispiel veranschaulicht: partial class ClassWithNestedClass { partial class NestedClass { } } partial class ClassWithNestedClass { partial class NestedClass { } }
-
Alle partiellen Typdefinitionen, die als Teile desselben Typs vorgesehen sind, müssen in derselben Assembly und demselben Modul (EXE- oder DLL-Datei) definiert sein. Partielle Definitionen können sich nicht über mehrere Module erstrecken. -
Der Klassenname und die generischen Typparameter müssen in allen partiellen Typdefinitionen übereinstimmen. Generische Typen können partiell sein. Jede partielle Deklaration muss die gleichen Parameternamen in der gleichen Reihenfolge verwenden. -
Folgende Schlüsselwörter sind in Definitionen für partielle Typen optional. Falls sie aber in einer der partiellen Typdefinitionen vorhanden sind, dürfen sie nicht in Konflikt mit Schlüsselwörtern stehen, die in einer anderen partiellen Definition für denselben Typ angegeben sind:
Beschreibung
Code
public partial class CoOrds { private int x; private int y; public CoOrds(int x, int y) { this.x = x; this.y = y; } } public partial class CoOrds { public void PrintCoOrds() { Console.WriteLine("CoOrds: {0},{1}", x, y); } } class TestCoOrds { static void Main() { CoOrds myCoOrds = new CoOrds(10, 15); myCoOrds.PrintCoOrds(); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } // Output: CoOrds: 10,15
Beschreibung
Code
partial interface ITest { void Interface_Test(); } partial interface ITest { void Interface_Test2(); } partial struct S1 { void Struct_Test() { } } partial struct S1 { void Struct_Test2() { } }
// Definition in file1.cs
partial void onNameChanged();
// Implementation in file2.cs
partial void onNameChanged()
{
// method body
}
Die Deklarationen partieller Methoden müssen mit dem kontextbezogenen Schlüsselwort partial beginnen, und die Methode muss void zurückgeben. Partielle Methoden dürfen ref-Parameter, aber keine out-Parameter aufweisen. Partielle Methoden sind implizit private, können also nicht virtual sein. Partielle Methoden dürfen nicht extern sein, da durch das Vorhandensein von Text festgelegt ist, ob sie definierend oder implementierend sind. Partielle Methoden können über Modifizierer vom Typ static und unsafe verfügen. Partielle Methoden können generisch sein. Für die definierende Deklaration einer partiellen Methode gelten Einschränkungen, die optional für die implementierende Deklaration wiederholt werden können. Die Namen von Parametern und Typparametern müssen in der implementierenden und definierenden Deklaration nicht übereinstimmen. Sie können einen Delegaten zu einer partiellen Methode machen, die definiert wurde und implementiert wurde, nicht jedoch zu einer partiellen Methode, die nur definiert wurde.
Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.
Hinweis