1.A delegate is an object that refers to a subroutine, function or other method
2.A delegate variable acts as a pointer to a subroutine or function
3.A delegate can not hold the address of a class's shared method
4.Delegate variables are sometimes called type-safe function pointers