A delegate is a type-safe reference to a method (like a function pointer) — it lets you treat methods as data: store them, pass them as arguments, and invoke them. Events are a pattern built on delegates for the publish-subscribe (observer) model. They underpin callbacks, LINQ, and event-driven programming in C#.
Delegates — methods as values
;
Operation = (a, b) => a + b;
Operation multiply = (a, b) => a * b;
result = (, );
=> op(x, y);
Apply(multiply, , );
