代码:
//主程序启动类
/**************************
*
* 委托的测试类
* ***********************/
using System;
using System.Collections.Generic;
using System.Text;
namespace 委托与事件认识
{
class Test
{
static void Main(string[] args)
{
//运行事件的注册
new ResisterClass(); //先注册委托
InvokeClass obj = new InvokeClass(); //再调用委托
obj.DisplayInfo();
Console.ReadKey();
}
}
}
//注册委托类
/**************************
*
* 委托的注册
* ***********************/
using System;
using System.Collections.Generic;
using System.Text;
namespace 委托与事件认识
{
class ResisterClass
{
public ResisterClass()
{
InvokeClass.eveInfo += InformZhangsan;
InvokeClass.eveInfo += InformLisi;
InvokeClass.eveInfo += InformWangwu;
}
public void InformZhangsan(string name)
{
Console.WriteLine("{0},张三,注意,老板来了",name);
}
public void InformLisi(string name)
{
Console.WriteLine("{0},李四,注意,老板来了", name);
}
public static void InformWangwu(string name)
{
Console.WriteLine("{0},王五,注意,老板来了", name);
}
}
}
//委托调用类
/*********************
*
* 委托的调用方
*
* ************************/
using System;
namespace 委托与事件认识
{
//定义委托
public delegate void InformInfoHandler(string name);
class InvokeClass
{
//声明事件
public static event InformInfoHandler eveInfo; //事件的实例
/// <summary>
/// 方法的调用
/// </summary>
public void DisplayInfo()
{
if (eveInfo!=null) //说明委托已经注册了
{
eveInfo.Invoke("我是前台小张!");
//eveInfo("我是前台小张!");
}
}
}
}