Assembly: mscorlib (in mscorlib.dll)
MulticastDelegate is a special class. Compilers and other tools can derive from this class, but you cannot derive from it explicitly. The same is true for the Delegate class.
Most programming languages implement a delegate keyword, and compilers for those languages are able to derive from the Delegate and MulticastDelegate classes. You should therefore use the delegate keyword provided by the language in each such case.
A MulticastDelegate object has a linked list of delegates, called an invocation list, that consists of one or more elements. When a multicast delegate is invoked, the delegates in the invocation list are called synchronously in the order in which they appear in the list. If an error occurs during execution of the invocation list, an exception is thrown.