首页 > 代码库 > Delegate and Event
Delegate and Event
1.Delegate
delegate 是关键词,【注:EventHandler是一个声明委托的微软C#的命名标准,我的习惯是标准就要第一时间说,也就这个命名习惯要第一时间养成】
在现实生活中,委托只是个命令,做事情是别人,而在程序世界里委托只是存储了各个方法的地址,而他自己也是什么也不做的。
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
这是委托的声明方法, BugTicketEventHandler(委托的方法);委托的方法必须要加上,因为委托的构造函数是不为空的。
注:委托的参数和返回类型,都要和你要具体委托的方法要一致
class MrZhang
{
public static void BuyTicket()
{
Debug.WriteLine("Ming you go to Buy Ticket For me!");
}
}
class MrMing
{
public static void Doit()
{
Debug.WriteLine("i do it!");
}
}
public sealed partial class MainPage : Page
{
public delegate void BuyTicketEventHandler();
public MainPage()
{
this.InitializeComponent();
BuyTicketEventHandler myDelegate = new BuyTicketEventHandler(MrZhang.BuyTicket);
myDelegate += MrMing.Doit;
myDelegate += test;
myDelegate();
}
void test()
{
Debug.WriteLine("TEST");
}
}
2.Event
事件是类在发生其关注的事情时用来提供通知的一种方式。
事件的发生一般都牵扯2个角色
事件发行者(Publisher):一个事件的发行者,也称作是发送者(sender),其实就是个对象,这个对象会自行维护本身的状态信息,当本身状态信息变动时,便触发一个事件,并通知说有的事件订阅者。
事件订阅者(Subscriber):对事件感兴趣的对象,也称为Receiver,可以注册感兴趣的事件,在事件发行者触发一个事件后,会自动执行这段代码。
Delegate and Event