Um delegate é uma referência type-safe a um método (como um ponteiro de função) — permite tratar métodos como dados: armazená-los, passá-los como argumentos e invocá-los. Events são um padrão construído sobre delegates para o modelo publish-subscribe (observer). Eles sustentam callbacks, LINQ e programação orientada a eventos em C#.
Delegates — métodos como valores
;
Operation = (a, b) => a + b;
Operation multiply = (a, b) => a * b;
result = (, );
=> op(x, y);
Apply(multiply, , );
