委托多播实例:例如小明叫小张买完车票,之后接着又让他带张电影票
// 小张类
public class MrZhang
{
// 其实买车票的悲情人物是小张
public static void BuyTicket()
{
Console.WriteLine("NND,每次都让我去买票呀!");
}
public static void BuyMovieTicket()
{
Console.WriteLine("我去,还要让我带电影票!");
}
}
//小明类
class MrMing
{
// 声明一个委托,其实就是个“命令”
public delegate void BugTicketEventHandler();
public static void Main(string[] args)
{
// 这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票”
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
myDelegate += MrZhang.BuyMovieTicket;
// 这时候委托被附上了具体的方法
myDelegate();
Console.ReadKey();
}
}
定义一个委托,准备相应的调用方法。注意:定义一个委托相当于定义一个新类,所有可以定义类的地方都可以定义委托。下面的代码定义在入口所在的类下面。
delegate double ProcessDelegate(double a, double b); // 定义一个委托。
static double Multiply(double a, double b)
{ return a * b; }
static double Divide(double a, double b)
{ return a / b; }
static double Sum(double c, double d)
{ return c + d; }
public static void Main(string[] args)
{
ProcessDelegete MyDelegate;
MyDelegate = Multiply;
}