partial method (Referenční dokumentace 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 kontextovým klíčovým slovem částečným.
Podpisy v obou částech částečného typu se musí shodovat.
Klíčové partial
slovo není povoleno u konstruktorů, finalizátorů, přetížených operátorů, deklarací vlastností nebo deklarací událostí.
Částečná metoda nemusí mít implementaci v následujících případech:
Nemá žádné modifikátory přístupnosti (včetně výchozí privátní).
Nemá žádné výstupní parametry.
Nemá žádný z následujících modifikátorů virtuálních, přepisovaných, zapečetěných, nových nebo extern.
Každá metoda, která nevyhovuje všem těmto omezením (například public virtual partial void
metodě), musí poskytnout 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 se zdrojovými generátory. Například regulární výraz lze definovat pomocí následujícího vzoru:
[GeneratedRegex("(dog|cat|fish)")]
partial bool IsPetMatch(string input);
Další informace naleznete v části Částečné třídy a metody.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro