Delegat to bezpieczny typ — referencja do metody (jak wskaźnik do funkcji) — umożliwia traktowanie metod jako danych: przechowywanie ich, przekazywanie jako argumenty i wywoływanie. Zdarzenia to wzorzec zbudowany na delegatach dla modelu publikuj-subskrybuj (obserwator). Stanowią podstawę dla callbacków, LINQ i programowania sterowanego zdarzeniami w C#.
Delegaty — metody jako wartości
;
Operation = (a, b) => a + b;
Operation multiply = (a, b) => a * b;
result = (, );
=> op(x, y);
Apply(multiply, , );
