1. Czym jest powierzenie?
Delegat to typ referencyjny, który jest zarządzaną wersją wskaźnika funkcji. W C# delegaty to typ, który przechowuje odwołania jako funkcje. Delegaci mogą odwoływać się zarówno do instancji, jak i metod statycznych, natomiast wskaźniki funkcji mogą odwoływać się jedynie do metod statycznych. Deklaracja delegata jest bardzo podobna do funkcji, w przeciwieństwie do funkcji, ponieważ delegat nie posiada ciała funkcji i wymaga słowa kluczowego Delegate. Delegowana deklaracja określa sygnaturę funkcji zawierającą listę parametrów oraz typ zwrotu. Gdy delegat zostanie zdefiniowany, można zadeklarować zmienną typu delegata, którą można następnie zainicjować jako odwołaną przez funkcję o tej samej sygnaturze co delegat, którą można wywołać za pomocą zmiennej delegata. (ps: W rzeczywistości powierzył mu klasę, a jego celem było przekazanie metody jako parametru innym metodom!) )
Delegaty, choć bardzo podobne do wskaźników funkcji, nie są wskaźnikami. Wiele osób stawia . Delegat w .NET jest rozumiany jako bezpieczny wskaźnik funkcji, co jest nieprawdopodobne, a wskaźnik funkcji implementacji delegata jest bardzo podobny, ponieważ zapewnia mechanizm wywołania zwrotnego programu.
2. Cztery etapy powierzenia: 1. Określenie rodzaju powierzenia
2. Istnieje metoda zawierająca kod do wykonania
3. Utworzenie instancji delegowanej
4. Wywołaj instancję delegata
3. Przykłady:
|