O ile idea partial classes wydaje się w miarę jasna, o tyle temat partial methods może wielu programistom wydawać się niejasny.
Kilka informacji na temat partial methods
- mogą znajdować się tylko w partial classes lub partial structs
- jedna część klasy zawiera jedynie sygnaturę, w drugiej zawarta jest definicja
- definicja metody jest opcjonalna (w przypadku jej braku kompilator pominie wszystkie wywołania)
- dzięki powyższym cechą mogą być luźnie stosowane do wprowadzania opcjonalnych funkcjonalności
- definicja musi rozpoczynać się od słowa kluczowego partial, a metoda może zwracać jedynie void
- są to metody prywatne (niejawnie)
- mogą być statyczne, generyczne
Pierwsza część definicji klasy (np. wygenerowana przez automat)
using System; namespace partial_methods { //simulates automatically generated code public partial class ClassAB { //implemented partial void PrintYourName(); //not implemented partial void PrintSurname(); public void Print() { Console.WriteLine("Hello"); PrintYourName(); PrintSurname(); } } }
Druga część (np. definiowana przez użytkownika)
using System; namespace partial_methods { //simulates user defined class public partial class ClassAB { private string _name; public ClassAB(string s) { _name = s; } partial void PrintYourName() { Console.WriteLine(_name); } } }
Brak komentarzy:
Prześlij komentarz