Un delegate è un riferimento type-safe a un metodo (come un puntatore a funzione) — ti permette di trattare i metodi come dati: memorizzarli, passarli come argomenti e invocarli. Gli events sono un pattern costruito sui delegate per il modello publish-subscribe (observer). Sono alla base dei callback, LINQ e della programmazione event-driven in C#.
Delegate — metodi come valori
;
Operation = (a, b) => a + b;
Operation multiply = (a, b) => a * b;
result = (, );
=> op(x, y);
Apply(multiply, , );
