惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
Last Week in AI
Last Week in AI
Blog — PlanetScale
Blog — PlanetScale
V
Visual Studio Blog
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
博客园 - Franky
IT之家
IT之家
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
雷峰网
雷峰网
腾讯CDC
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
人人都是产品经理
人人都是产品经理
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
博客园_首页
G
Google Developers Blog

博客园 - 帝之晓

Metabase里的 linked filters 使用 EntityFramework 6.0 修改一个已经存在的对象 这个功能是怎么实现的 英语英语。我想要把你学的很牛逼。 PS快捷键大全 附加数据库错误 5102 如何在三个月内获得三年的工作经验(转) sql2005还原数据库 Nettiers的GridViewSearchPanel - 帝之晓 - 博客园 企业库的日志使用 常用的40个网站制作技巧(收藏整理)转 - 帝之晓 - 博客园 asp.net里的基础概念 BlogEngine数据库结构 XmlSerializer 序列化和反序列化 决定好好研究一些开源的系统 TimeTracker研究 .nettiers里的ServiceLayer和DomainModel 共享软件的十大破解工具 免费的css模板下载
符合.net准则的事件
帝之晓 · 2009-03-23 · via 博客园 - 帝之晓

转载

委托:

委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引用函数,将其作为它构造函数的参数。

每一个委托都有自己的签名,例如:Delegate int SomeDelegate(string s, bool b);是一个委托申明,在这里,提及的签名,就是说SomeDelegate 这个委托 有 string 和 bool 类型的形参,返回一个int 类型。

上面提及的:当你对委托实例化时,要提供一个引用函数,将其作为它构造函数的参数。这里要注意了:被引用的这个函数必须和委托有相同的签名。

看下面的函数:

private int SomeFunction(string str, bool bln){...}

你可以把这个函数传给SomeDelegate的构造函数,因为他们有相似的签名(in other words,他们都有相同的形参类型和个数,并且返回相同的数据类型)。

SomeDelegate sd = new SomeDelegate(SomeFunction);

sd 引用了 SomeFunction,也就是说,SomeFunction已被sd所登记注册,如果你调用 sd,SomeFunction 这个函数也会被调用,记住:我所说 SomeFunction的含义,后面,我们会用到。

===================

链接: ms-help://MS.MSDNQTR.v90.chs/dv_csref/html/9310ae16-8627-44a2-b08c-05e5976202b1.htm