程序设计-ASP.NET基础知识(六)

委托

程序设计-ASP.NET基础知识(六)

C# 中的委托是什么?如何理解委托?

简单的说:委托是一种方法容器,里面可以装载若干个具有相同签名的方法引用地址,那么调用委托,就相当于同时调用了该容器内的所有方法。

委托可以看做一种新的对象类型,具有面向对象的特点,定义时可签名接收参数, 委托实例化时,可以把方法名作为一个参数传递给委托对象,委托可以理解为指向函数的引用 。生成的委托对象可以代理所传递的方法,可以接收方法的参数。也就是定义了委托,可以在不用调用原方法的情况下,调用那个方法

例:

委托类似于 C 或 C++ 中的函数指针。但不同的是委托是面向对象、类型安全的。

委托允许将方法作为参数进行传递。

委托可用于定义回调方法。

委托可以链接在一起;创建多个对象,使用“+= ”累加到同一个委托对象上的引用上,例如,可以对一个事件调用多个方法。

方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。

C# 2 。0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。如:

结果:

事件信息:Text 属性被更改了

事件发布者:Name 类的对象

你输入的名字是:张三

请按任意键继续. . .

使用匿名方法,直接将方法体的代码和委托对象关联而不需要单独定义此方法

事件是不是一种委托?

委托是一种安全的函数指针,事件是一种消息机制

委托与事件是什么关系?为什么要使用委托

委托提供了封装方法的方式 , 事件是某动作已发生的说明 , 事件是建立于委托之上

程序运行时同一个委托能够用来调用不同的方法,只要改变它的引用方法即可 , 因此委托调节器用的方法不是在编译时决定的, 而是在运行时确定的.

 

俊霖

发表评论

您必须