委托本质上是类,可以实现“在方法的参数种传方法”,在不改变方法的的情况下不断增加功能,可以实现调用方和实现方的解耦合
商业项目
功能调用方 InvokeClass.cs
事件注册方 RegisterClass.cs
测试方 TestClass.cs
//定义委托
Public delegate void InformInfoHandler(string name);
//声明委托
InformInfoHandler myinform; //委托实例
//委托方法注册
Public UsrDelegate()
{
myinform=new InformInfoHandler(InfoMrZhangSan);
Myinform+=new InformInfoHandler(InfoMrLiSi);
Myinform+=new InformInfoHandler(InfoMrWangwu);
Myinform+=new InformInfoHandler(InfoMrNewComer);
}
public void InfoMrZhangSan(string name)
{
Console.WriteLine("{0},老板来了,张三,请快快关闭电脑", name);
}
public void InfoMrLiSi(string name)
{
Console.WriteLine("{0},老板来了,李四,请快快关闭电脑", name);
}
public void InfoMrWangwu(string name)
{
Console.WriteLine("{0},老板来了,王五,请快快关闭电脑", name);
}
public void InfoMrNewComer(string name)
{
Console.WriteLine("{0},老板来了,新同事,请快快关闭电脑", name);
}
//调用委托
Public void SendInfo(){
myinform(“我是前台小张”);
}
事件本质上是委托的一个实例,委托可以定义在类的外部,事件只能定义在类的内部。
public event InformInfoHandler eveMyInform;