C# unterstützt die Funktion der Teilmethoden . Diese ermöglichen es einer partiellen Klassendefinition, eine Methode weiterzudeklarieren, die ein anderer Teil der partiellen Klasse dann optional definieren kann.
Partielle Methoden haben einige Einschränkungen:
- sie MÜSSEN vom Typ void sein (keine Rückgabe)
- sie können KEINE Out-Parameter akzeptieren, wohl aber Ref-Parameter
- sie dürfen NICHT virtuell oder extern sein und dürfen eine andere Methode nicht überschreiben (über das Schlüsselwort "new")
Partielle Methoden sind implizit versiegelt und privat.
Es ist jedoch nicht möglich, dass zwei verschiedene Teile einer partiellen Klasse dieselbe partielle Methode implementieren. Im Allgemeinen werden partielle Methoden in codegenerierten partiellen Klassen verwendet, um dem nicht generierten Teil die Möglichkeit zu geben, das Verhalten des generierten Teils zu erweitern oder anzupassen (oder manchmal auch andersherum). Wenn eine partielle Methode deklariert, aber in keinem Teil der Klasse implementiert ist, wird der Compiler automatisch alle Aufrufe dieser Methode eliminieren.
Hier ist ein Codebeispiel:
public partial class PartialTestClass
{
partial void DoSomething();
public PartialTestClass() { DoSomething(); }
}
public partial class PartialTestClass
{
partial void DoSomething() { /* code here */ }
}