Udostępnij za pośrednictwem


Pełnomocnicy (Podręcznik programowania C#)

A delegować jest typem, który definiuje podpis metody.Podczas wystąpienia jest pełnomocnikiem, można skojarzyć jej instancji w każdej metodzie podpisem zgodne.Można wywołać (lub wywołać) metoda, za pośrednictwem instancji obiektu delegowanego.

Obiekty delegowane są używane do przekazywania metod jako argumenty do innych metod.Programy obsługi zdarzeń nie są niczym więcej niż metody, które są wywoływane za pośrednictwem delegatów.Utworzyć niestandardowe metody i klasy, takie jak kontrola systemu windows może wywołać metodę, gdy wystąpi określone zdarzenie.Poniższy przykład przedstawia deklaracji obiektu delegowanego:

    public delegate int PerformCalculation(int x, int y);

Wszelkie metody z klasy dostępne lub struct pasującego podpisu pełnomocnika, który składa się z typem zwracanym i parametry, można przypisać do pełnomocnika.Metoda może być statyczne lub metody instancji.Dzięki temu możliwe programowo zmienić wywołania metody, a także Podłącz nowy kod do klasy istniejącej.Tak długo, jak wiadomo, podpis pełnomocnika, można przypisać własne metody.

[!UWAGA]

W kontekście przeciążenia metody podpis metody nie zawiera wartości zwracanej.Jednak w kontekście delegatów, podpis zawierać wartości zwracanej.Innymi słowy metoda musi mieć tę samą wartość zwrotu jako pełnomocnik.

Taką możliwość, aby odwołać się do metody jako parametr sprawia, że delegatów jest idealnym rozwiązaniem dla definiujący metody wywołania zwrotnego.Odniesienie do metody, który porównuje dwa obiekty można na przykład przekazanej jako argument do algorytm sortowania.Ponieważ kod porównanie znajduje się w ramach oddzielnej procedury, algorytm sortowania można zapisać w sposób bardziej ogólny.

Pełnomocnicy, omówienie

Pełnomocnicy mają następujące właściwości:

  • Pełnomocnicy są jak C++ wskaźników funkcji, ale są typu bezpiecznej.

  • Pełnomocnicy umożliwiają metody przekazywane jako parametry.

  • Pełnomocnicy może służyć do definiowania metod wywołania zwrotnego.

  • Pełnomocnicy mogą połączonych ze sobą; na przykład wiele metod można nazywane na pojedyncze zdarzenie.

  • Metody nie pasują do podpisu delegata.Aby uzyskać więcej informacji, zobacz Za pomocą odchylenia w delegatów (C# i Visual Basic).

  • C# w wersji 2.0 wprowadził koncepcję Anonimowych metod, których dozwolone jest stosowanie bloki kodu przekazywane jako parametry w miejsce metody zdefiniowane oddzielnie.C# 3.0 wprowadzono wyrażenia lambda jako bardziej zwięzły sposób zapisywania bloki kodu wbudowanego.Zarówno anonimowe metody i wyrażenia lambda (w określonych kontekstach) są kompilowane delegowania typów.Razem te funkcje są teraz znane jako funkcje anonimowe.Aby uzyskać więcej informacji na temat wyrażeń lambda, zobacz Anonimowe funkcje (Podręcznik programowania C#).

W tej sekcji

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka to najlepsze źródło informacji dotyczących składni i zastosowania języka C#.

Promowane rozdziałów książki

Delegates, Events, and Lambda ExpressionswC# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers

Delegates and EventswLearning C# 3.0: Master the fundamentals of C# 3.0

Zobacz też

Informacje

Zdarzenia (Podręcznik programowania C#)

Delegate

Koncepcje

Podręcznik programowania C#