WEB开发网
开发学院软件开发C语言 C#3.0笔记(二)预备知识之委托与事件 阅读

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;

看看编译器帮我们定义了什么

C#3.0笔记(二)预备知识之委托与事件

图片看不清楚?请点击这里查看原图(大图)。

首先我们可以看到帮我们定义了一个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)

1 2 3 4 5  下一页

Tags:笔记 预备 知识

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接