using System;
//声明一个名为mfDelegate的委托,该委托有一个string类型的参数
//c#编译器编译时会产生一个新类,该类继承自System.Delegate,类
//名为mfDelegate
public delegate void mfDelegate(string name);
public class Hello Word
{
//定义与mfDelegate有相同参数类型的方法Hello()
public static void Hello(string name)
{
Console.WriteLine("您好,{0}!",name);
}
//定义与mfDelegate有相同参数类型的方法GoodBye()
public static void GoodBye(string name)
{
Console.WriteLine("再见,{0}!",name);
}
public static void Main()
{
//创建一个mfDelegate实例 mf1
mfDelegate mf1=new mfDelegate(Hello);
//调用mf1
mf1("Hello Word");
mfDelegate mf2=new mfDelegate(GoodBye);
mf2("Hello Word");
//将mf1 mf2组合成一个新的委托mf3
mfDelegate mf3=mf1+mf2;
//调用mf3
mf3("程序员");
//从组合的委托mf3中删除mf1
mfDelegate mf4=mf3-mf1;
mf4("Hello Word");
}
}
程序结果:您好,Hello Word!//mf1; 再见,Hello Word!//mf2
您好,程序员! 再见,程序员!//mf3
再见,Hello Word!//mf4