Události
Vytváření aplikací a agentů AI
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Delegát je typ, který představuje odkazy na metody s konkrétním seznamem parametrů a návratovým typem. Pokud vytvoříte instanci delegátu, můžete příslušnou instanci přidružit s jakoukoli metodou s kompatibilním podpisem a návratovým typem. Metodu můžete vyvolat (nebo volat) prostřednictvím instance delegátu.
Delegáty se používají pro předávání metod jako argumentů jiným metodám. Ovladače událostí nejsou nic jiného než metody, které jsou vyvolány prostřednictvím delegátů. Můžete vytvořit vlastní metodu a konkrétní třída, jako je ovládací prvek Windows, může volat vaši metodu, pokud dojde k určité události. Následující příklad znázorňuje deklaraci delegátu.
public delegate int PerformCalculation(int x, int y);
Delegátu lze přiřadit jakoukoli metodu z jakékoli přístupné třídy nebo struktury odpovídající typu delegátu. Metoda může být buď statická, anebo se jedná o metodu instance. Tato flexibilita znamená, že můžete programově změnit volání metod nebo připojit nový kód do existujících tříd.
Poznámka
V kontextu přetížení metody nezahrnuje podpis metody návratovou hodnotu. V kontextu delegátů však podpis zahrnuje návratovou hodnotu. Jinými slovy to znamená, že metoda musí mít stejný návratový typ jako delegát.
Díky této možnosti odkazovat na metodu jako parametr jsou delegáty ideální pro definování metod zpětného volání. Můžete napsat metodu, která porovnává dva objekty v aplikaci. Tuto metodu lze použít v delegátu pro algoritmu řazení. Vzhledem k tomu, že porovnávací kód je oddělený od knihovny, může být metoda řazení obecnější.
Ukazatele funkcí byly přidány do C# 9 pro podobné scénáře, kde potřebujete větší kontrolu nad konvencí volání. Kód přidružený k delegátu se vyvolá pomocí virtuální metody přidané do typu delegáta. Pomocí ukazatelů funkcí můžete zadat různé konvence.
Delegáty mají následující vlastnosti:
Další informace najdete v tématu Delegáti ve specifikaci jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Události
Vytváření aplikací a agentů AI
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Modul
Volání metod z knihovny tříd .NET pomocí jazyka C# - Training
Voláním metod, které vracejí hodnoty, přijímají vstupní parametry a další, můžete využívat funkce knihovny tříd .NET.
Dokumentace
Jak deklarovat, vytvořit instanci a používat delegáta - C#
Zjistěte, jak deklarovat, vytvořit instanci a používat delegáta. Podívejte se na příklady, které pokrývají C# 1.0, 2.0 a 3.0 a novější.
Naučte se používat delegáty. Delegáti jsou objektově orientovaný, typ bezpečný a zabezpečený typ, který bezpečně zapouzdřuje metodu.
Kombinování delegátů (delegáti vícesměrového vysílání) - C#
Zjistěte, jak kombinovat delegáty a vytvářet delegáty vícesměrového vysílání. Podívejte se na příklad kódu a prohlédněte si další dostupné prostředky.