委托揭秘

参考:

框架设计(第二版):CLR Via C#——15.4 委托揭秘(P281)

正文:

代码1-1,这是一个简单的委托使用。

using System;
using System.Collections.Generic;
using System.Text;

namespace Delegate
{
 public class DelegateTest
 {
  protected delegate void MyDelegate();

  private void TestMethod() { }

  private void Method()
  {
   MyDelegate aMyDelegate = new MyDelegate(TestMethod);
   Method(aMyDelegate);
  }

  private void Method(MyDelegate aMyDelegate)
  {
   if (aMyDelegate != null)
   {
    aMyDelegate();
   }
  }
 }
}

代码1-1

从表面上看,委托似乎很容易使用:用C#的delegate关键字来定义,用我们都熟悉的new操作符来构造委托实例,用我们熟悉的方法调用语法来调用回调函数(不过要用引用了委托对象的变量来代替方法名)。

然而,实际情况比前面几个例子所演示的复杂得多。编译器和CLR做了大量的幕后工作来隐藏复杂性。本节将集中讲解编译器和CLR是如何实现委托的。掌握这些知识有助于我们理解委托,并学会如何更好地使用它们。与此同时,本节还要适当地介绍委托的其它一些特征。

首先重新查看下面这行代码:代码1-2

public delegate void MyDelegate();

代码1-2

时间: 2024-10-06 10:39:14

委托揭秘的相关文章

第十二章 委托[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计 第十二章 委托 一. 委托的使用 静态委托和实例委托,使用方法类似,这里给出一个使用可变参数委托的例子: using System; public class DelCls { public delegate void DelDef(params string[] strParams); public static void CallDel(DelDef dd) { if(dd != null) //请务必在此处进行判断,这是个好习惯 { dd("Hello&qu

[CLR via C#]17. 委托

原文:[CLR via C#]17. 委托     回调函数是一种非常有用的编程机制,它已经存在很多年了.Microsoft .NET Framework通过委托(delegate)来提供一种回调机制.不同于其他平台(比如非托管C++)的回调机制,委托提供了多得多的功能.例如,委托确保回调方法是类型安全的(这是CLR最重要的目标之一).委托还允许顺序调用多个方法,并支持调用静态方法和实例方法.   一.初识委托     为了理解委托,先看看如何使用它.     委托4个最基本的步骤:     1

艾伟_转载:把委托说透(1):开始委托之旅 委托与接口

委托,本是一个非常基础的.NET概念,但前一阵子在园子里却引起轩然大波.先是Michael Tao的随笔让人们将委托的写法与茴香豆联系到了一起,接着老赵又用一系列文章分析委托写法的演变,并告诫"嘲笑孔乙己的朋友们,你们在一味鄙视"茴"的四种写法的同时,说不定也失去了一个了解中国传统文化的机会呢!". 在我个人看来,委托是.NET Framework中一个非常炫的特性,绝不会向有些评论里说的那样,根本没有机会接触.恰恰相反,我们几乎每天都会接触委托,使用委托. 其实园

艾伟_转载:把委托说透(2):深入理解委托

在上一篇随笔中我们通过示例逐步引入了委托,并比较了委托和接口.本文将重点剖析委托的实质. 委托在本质上仍然是一个类,我们用delegate关键字声明的所有委托都继承自System.MulticastDelegate.后者又是继承自System.Delegate类,System.Delegate类则继承自System.Object.委托既然是一个类,那么它就可以被定义在任何地方,即可以定义在类的内部,也可以定义在类的外部. 正如很多资料上所说的,委托是一种类型安全的函数回调机制, 它不仅能够调用实

专访实战专家,揭秘iOS神奇开发之路

专访实战专家,揭秘iOS神奇开发之路 转自:http://www.ciitn.com/archive/5533.html 中国信息产业培训网主编专访业内知名实战专家.安博教育-中程在线金牌讲师关东升老师 时间:2012-03-29 10:59来源:未知 作者:xinglu点击: 164 次 在现今的移动互联网时代,苹果产品风靡全球.因此,相应的iOS开发也渐渐成为IT业界热门的职业方向.除了可以给开发人员带来高薪的职位,还能够为个人创造可以盈利的开发模式,对此,中国信息产业培训网主编专访业内知名

写春联、变魔术、模仿马云唱歌,为你揭秘阿里云人工智能ET背后的技术

摘要:在主办的云栖计算之旅第5期–大数据与人工智能分享中,阿里云数加资深前端工程师昊祯为大家揭秘了阿里云人工智能ET背后的技术. 本文根据演讲视频整理而成. 前一段时间阿里云ET在阿里园区举办过一个活动,就是在春节之前为阿里巴巴的员工写春联.之前春节之前都是邀请书法专家为阿里员工写春联,而这次就借助了阿里云人工智能将写春联活动自动化实现了. 接下来分享一下阿里云人工智能ET到底是什么样的东西,一起来看一看阿里云ET究竟有哪些能力. ET能力一:学马总说话&唱歌 ET可以学会马总说话,当然也可以学

委托(一个主窗体统计多个从窗体的按钮单击的次数)

最近在学习金老师的<.NET2.0面向对象编程揭秘>,学到了13章,委托.事件驱动和异步调用.书上有个试一试,要求:利用委托,达到一个主窗体统计多个从窗体的按钮单击的次数. 效果如下: frmMain Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 using System; using System.Collections.Gener

高招录取工作今日开始专家揭秘高招三类骗局

东省2011年高招录取工作今日正式开始,山东省招考院提醒广大考生和家长提高防范意识,对招生录取工作有任何疑问,都可通过省教育考试院公布的正规咨询渠道确认核实. 一."特殊类"招生骗局 07年某无业人员打着为军校招收学员的旗号,伪造军官证等证件,骗取50名高考落榜生及家长600多万元的事件一度引起社会强烈反响.时至今日,在一些偏远地区.贫困地区,仍有部分不法分子打着军校或是定向招生的名义欺骗考生和家长. 防范提醒:<中国人民解放军院校招生工作条例>规定,军队院校的招生计划由教

浏览器的工作原理:新式网络浏览器幕后揭秘{转}

//我是 "转"的~这么大牛的文章, 我会慢慢理解和回味~ http://taligarsiel.com/Projects/howbrowserswork1.htm http://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/ 浏览器的渲染原理简介 Introduction The browsers we will talk about The browser's main functionality The bro