partial – metoda (Referenční příručka jazyka C#)
Částečná metoda má svou signaturu definovanou v jedné části částečného typu a implementaci definovanou v jiné části typu. Částečné metody umožňují návrhářům tříd poskytovat háky metod, podobně jako obslužné rutiny událostí, u kterých se mohou vývojáři rozhodnout, zda je chtějí implementovat nebo ne. Pokud vývojář neposkytne implementaci, kompilátor v době kompilace odebere signaturu. Na částečné metody se uplatňují tyto podmínky:
Deklarace musí začínat částečným klíčovým slovemcontextual .
Podpisy v obou částech částečného typu se musí shodovat.
Částečná metoda není nutná k implementaci v následujících případech:
Nemá žádné modifikátory přístupnosti (včetně výchozího privátního ).
Vrátí void.
Nemá žádné out parametry.
Nemá žádný z následujících modifikátorů virtuální , přepisuje , zapečetěný, novýnebo extern.
Každá metoda, která neodpovídá všem ohledem na tato omezení (například public virtual partial void metoda), musí poskytovat implementaci.
Následující příklad ukazuje částečnou metodu definovanou ve dvou částech částečné třídy:
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);
}
}
}
Částečné metody mohou být užitečné také v kombinaci s generátory zdrojů. Například regulární výraz lze definovat pomocí následujícího vzoru:
[RegexGenerated("(dog|cat|fish)")]
partial bool IsPetMatch(string input);
Další informace najdete v tématu Částečné třídy a metody.