Basically, a delegate is just a wrapper around what would be a function pointer in C (or a list of function pointers).
An event is an even higher level abstraction that wraps the concept of a delegate together with methods to subscribe and unsubscribe a method to such delegates.
An event is a “property” that exposes an add
and remove
method (invoked via +=
and -=
in code) to add/remove subscribers to a delegate list.