委托是一种可以把引用存储为函数的类型,也就是说可以把函数作为参数来传递。委托主要用于事件和事件传递。
委托的声明类似于函数,但是不带函数体,且要用delegate关键字(delegate double myDelegate(double a, double b))。委托声明指定一个函数签名,其中包含一个函数返回类型和参数列表。
定义了委托后,就可以声明该委托类型的变量(myDelegate process)。
接着将这个变量初始化为与委托有相同签名的函数引用(process = new myDelegate(Multiply)),之后就可以使用委托变量调用这个函数(Console.WriteLine("Result is {0}", process(p1,p2))),就像该变量是个函数一样。