.net 系列:事件和委托
- 摘要:在.net的世界里,离不开委托和事件,其实理解透了后很简单,总结了一下分为5步:1)定义委托publicdelegatevoidRevicedEventHandler(objectsender,RevicedEventArgse);RevicedEventArgs:自定义参数源2)定义事件publiceventRevicedEventHandlerRevicedEvent;3)定义触发事件的函数publicvirtualOnReviced(RevicedEventArgse){if
- 标签:事件 .net net
class="author-p-25303044 bold:true">在.net 的世界里,离不开委托和事件,其实理解透了后很简单,总结了一下分为5步:
1)定义委托
public delegate void RevicedEventHandler(object sender,RevicedEventArgs e);
RevicedEventArgs :自定义参数源
2) 定义事件
public event RevicedEventHandler RevicedEvent;
3) 定义触发事件的函数
public virtual OnReviced(RevicedEventArgs e)
{
if(RevicedEvent!=null)
{
RevicedEvent(this,e);
}
}
4)定义事件处理函数
public void DoSome(object sender,RevicedEventArgs e)
{
.......
}
5) 注册事件处理程序(将事件处理程序和事件关联起来)
this.RevicedEvent+=new RevicedEvent(DoSome);
说明:第1、2、3步是在发布者类定义,4、5步是在订阅类定义
调用:满足条件时调用,例如:person p =new person();
p.OnReviced(new RevicedEventArgs ());
其实:.net 后续又提供了泛型版本委托:public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
所以,第2步的事件可以换成:public event EventHandler<RevicedEventArgs >RevicedEvent;此时第1步可以省略掉。