partial, metoda (odwołanie w C#)
Metoda częściowa ma swój podpis zdefiniowany w jednej części typu częściowego i jego implementację zdefiniowaną w innej części typu. Metody częściowe umożliwiają projektantom klas udostępnianie punktów zaczepienia metod, podobnie jak programy obsługi zdarzeń, które deweloperzy mogą zdecydować się zaimplementować lub nie. Jeśli deweloper nie dostarcza implementacji, kompilator usuwa podpis w czasie kompilacji. Następujące warunki dotyczą metod częściowych:
Deklaracje muszą zaczynać się od częściowego słowa kluczowego kontekstowego.
Podpisy w obu częściach typu częściowego muszą być zgodne.
Słowo partial
kluczowe nie jest dozwolone w konstruktorach, finalizatorach, przeciążonych operatorach, deklaracjach właściwości lub deklaracjach zdarzeń.
Metoda częściowa nie jest wymagana do wdrożenia w następujących przypadkach:
Nie ma żadnych modyfikatorów ułatwień dostępu (w tym domyślnego prywatnego).
Zwraca wartość void.
Nie ma żadnych parametrów wychodzących .
Nie ma żadnej z następujących modyfikatorów wirtualnych, przesłonięć, zapieczętowanych, nowych lub extern.
Każda metoda, która nie jest zgodna ze wszystkimi tymi ograniczeniami (na przykład public virtual partial void
metodą), musi zapewnić implementację.
Poniższy przykład przedstawia metodę częściową zdefiniowaną w dwóch częściach klasy częściowej:
namespace PM
{
partial class A
{
partial void OnSomethingHappened(string s);
}
// This part can be in a separate file.
partial class A
{
// Comment out this method and the program
// will still compile.
partial void OnSomethingHappened(String s)
{
Console.WriteLine("Something happened: {0}", s);
}
}
}
Metody częściowe mogą być również przydatne w połączeniu z generatorami źródłowymi. Na przykład wyrażenie regularne można zdefiniować przy użyciu następującego wzorca:
[GeneratedRegex("(dog|cat|fish)")]
partial bool IsPetMatch(string input);
Aby uzyskać więcej informacji, zobacz Klasy częściowe i metody.
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla