A delegate is a reference type variable that holds the reference to a method. The reference can be changed at runtime.
A delegate object encapsulates a reference to a method. In C++ they were referred to as function pointers.