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:

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é