.NET中的委托与事件——之简单入门
2008-10-23 15:29
423 查看
一、什么是委托
下面引用自 MSDN
委托类型声明的格式如下:
public delegate void TestDelegate(string message);
delegate 关键字用于声明一个引用类型,该引用类型可用于封装命名方法或匿名方法。委托类似于 C++ 中的函数指针;但是,与函数指针不同,委托是面向对象和类型安全的。
通过将委托与命名方法或匿名方法关联,可以实例化委托。与之关联的匿名方法必须除了方法名之外参数类型、参数个数、参数顺序和返回值都必须和声明的委托类型保持一致。
对于可隐式转换的参数和返回值类型处理可查阅 MSDN。
看看《.NET 大局观》第2版中对委托的定义:委托是指向方法的一个安全可靠的指针。所有 delegate 都继承自一个共同的 System.Delegate 类型,通常用于事件的处理和回调(callbacks)。每个委托都关联一系列成员,称为调用列表(invocation list)。一旦委托被调用,列表中的每一个成员也都会被调用,并获得委托所收到的参数。
二、委托是什么?
上面已经提到了什么是委托,现在又反问了委托是什么,这不是吃饱饭没事做忽悠人吗?
当然不是,上面的问题是从委托本身狭小的范围来说事的,现在是要在超出委托定义的范围来说明。
为了看清委托的真面目,我们来创建一个委托类型
namespace DelegateAndEventTest
{
public delegate void SampleDelegate(string message);
}
再用 ildasm 打开编译后的 dll 查看生成的 IL 代码,结果如下:
using System;
namespace DelegateAndEvent
using System;
namespace DelegateAndEvent
using System;
namespace DelegateAndEvent
程序输出结果:
我要开始走动了
我走啊走啊走啊走....
我已经走到 x=10 y=20 的位置
我已经走到了尽头
信息来源:http://www.cnblogs.com/yyw84/archive/2006/12/27/604544.html
下面引用自 MSDN
委托类型声明的格式如下:
public delegate void TestDelegate(string message);
delegate 关键字用于声明一个引用类型,该引用类型可用于封装命名方法或匿名方法。委托类似于 C++ 中的函数指针;但是,与函数指针不同,委托是面向对象和类型安全的。
通过将委托与命名方法或匿名方法关联,可以实例化委托。与之关联的匿名方法必须除了方法名之外参数类型、参数个数、参数顺序和返回值都必须和声明的委托类型保持一致。
对于可隐式转换的参数和返回值类型处理可查阅 MSDN。
看看《.NET 大局观》第2版中对委托的定义:委托是指向方法的一个安全可靠的指针。所有 delegate 都继承自一个共同的 System.Delegate 类型,通常用于事件的处理和回调(callbacks)。每个委托都关联一系列成员,称为调用列表(invocation list)。一旦委托被调用,列表中的每一个成员也都会被调用,并获得委托所收到的参数。
二、委托是什么?
上面已经提到了什么是委托,现在又反问了委托是什么,这不是吃饱饭没事做忽悠人吗?
当然不是,上面的问题是从委托本身狭小的范围来说事的,现在是要在超出委托定义的范围来说明。
为了看清委托的真面目,我们来创建一个委托类型
namespace DelegateAndEventTest
{
public delegate void SampleDelegate(string message);
}
再用 ildasm 打开编译后的 dll 查看生成的 IL 代码,结果如下:
using System;
namespace DelegateAndEvent
using System;
namespace DelegateAndEvent
using System;
namespace DelegateAndEvent
程序输出结果:
我要开始走动了
我走啊走啊走啊走....
我已经走到 x=10 y=20 的位置
我已经走到了尽头
信息来源:http://www.cnblogs.com/yyw84/archive/2006/12/27/604544.html
相关文章推荐
- .net 入门小程序(1):简单的文本文件读写及相应鼠标事件小程序
- .NET 机制下的事件委托
- C#事件、委托简单示例
- 谈谈.NET中常见的内存泄露问题——GC、委托事件和弱引用
- .Net学习难点讨论系列1 – 委托与事件之事件
- 用简单的代码测一测你是否真的了解:Asp.Net中的事件和委托的实现
- 委托和事件入门(三)自定义控件事件
- 简单例子快速了解事件处理和委托 event delegate
- 一起谈.NET技术,Visual Studio DSL 入门 3---创建一个简单的DSL模型
- [转]最犇的.Net下的委托入门讲解
- 简单谈谈事件与委托(转)
- jquery事件委托的回调函数中调用全局变量的简单方法
- .net中委托和事件
- jquery事件委托的回调函数中调用全局变量的简单方法
- jquery事件委托的回调函数中调用全局变量的简单方法
- 最犇的.Net下的委托入门讲解
- .net的委托和事件的直接理解
- .Net (C#)委托和事件(获取多个返回值)
- .net中的委托和事件
- .net学习之委托和事件