Delegate and Event
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章
在 self.delegate 实现 UIAlertViewDelegate 协议的 alertView 中设置 delegate:self.delegate