A Delegate is an object that refers to a subroutine, function, or other method. The method can be an instance method provided by an object, a class’s shared method, or a method defined in a code module. A delegate variable acts as a pointer to a subroutine or function. Delegate’s variables are sometimes called type-safe function pointers.
The Delegate keyword defines a delegate class and specifies the parameters and return type of the method to which the delegate will refer.