C#3.0笔记(二)预备知识之委托与事件
2009-05-18 08:28:07 来源:WEB开发网核心提示:在上篇blog中简单地介绍了委托的基础知识,在这片文章中会介绍下委托跟事件之间的联系,C#3.0笔记(二)预备知识之委托与事件,事件的由来我们可以看到在使用委托进行回调的实现的时候,我们往往需要再定义一个委托对象,首先我们可以看到帮我们定义了一个Caculate对象,其次定义了两个方法add_OnCaculate跟re
在上篇blog中简单地介绍了委托的基础知识,在这片文章中会介绍下委托跟事件之间的联系。
事件的由来
我们可以看到在使用委托进行回调的实现的时候,我们往往需要再定义一个委托对象,以及一个对外公开的辅助方法来添加委托的方法,这样子会使我们感觉比较繁琐。C#提供了event关键字来减轻直接使用委托的负担,编译器会自动提供注册、取消注册的方法和委托必要的成员。首先来看看定义事件的步骤:
1.先定义委托类型;
2.通过event关键字定委托类型的事件。
public delegate int Caculate(int x, int y);
public event Caculate OnCaculate;
看看编译器帮我们定义了什么
图片看不清楚?请点击这里查看原图(大图)。
首先我们可以看到帮我们定义了一个Caculate对象,其次定义了两个方法add_OnCaculate跟remove_OnCaculate。我们可以在看看add_OnCaculate两个方法里面的一些核心的东西。add_OnCaculate:
IL_0008: call
class [mscorlib]System.Delegate [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate,
class [mscorlib]System.Delegate)
更多精彩
赞助商链接