C#3.0笔记(二)预备知识之委托与事件
2009-05-18 08:28:07 来源:WEB开发网核心提示: publicclassCarEventArgs:EventArgs{publicreadonlystringmsg;publicCarEventArgs(stringMsg){msg=Msg;}}委托就可以修改成:publicdelegatevoidCarEventHandler(obje
public class CarEventArgs : EventArgs
{
public readonly string msg;
public CarEventArgs(string Msg)
{
msg = Msg;
}
}
委托就可以修改成:
public delegate void CarEventHandler(object send, CarEventArgs e);
使用时:
if (IsDead)
{
if (this.Exploded!= null)
Exploded(this,new CarEventArgs("The Car Is Dead"));
}
在上面的时候我们当监听事件的时候都是通过定义一个唯一的与委托签名匹配的方法,在有的时候我们监听的方法也许只需要处理一段简单的逻辑,所以每次都定义个方法毕竟比较麻烦。大都时候我们可以通过匿名方法来监听事件,如:
bmw.AbortToBlow += delegate(object sender, CarEventArgs e)
{
Console.WriteLine("Message:{0}",e.msg);
};
总结
这篇中分析了下事件跟委托的关系,其实事件只是语法定义上的方便,关键还是理解了委托就行。
出处: http://henllyee.cnblogs.com/
系列文章:
C#3.0笔记(一)预备知识之Delegate
C#3.0笔记(三)var关键字与扩展方法
更多精彩
赞助商链接