`
isiqi
  • 浏览: 16042034 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

理解委托

 
阅读更多

委托是一种特殊的引用类型,它将方法作为特殊的对象封装起来,从而将方法作为变量或是参数进行传递。

委托在使用过程中的一般步骤:类型定义、对象创建和方法绑定,方法调用。

所谓的委托就是我委托你去买火车票,你有自己去买火车票的方法,我要的最终结果是你把火车票买了。在这过程中你就是一个委托。其中这个委托要进行四个步骤:类型定义(让别人帮你买火车票这一事件)对象创建(具体委托谁去买和那人说一声),方法绑定(告诉你委托的人要买什么样的火车票),方法的调用(委托的人买到了你要的火车票)。

在使用委托的时候首先是在程序的开始声明一个委托,在使用这个委托的时候要实例化一个委托(使用 的具体的委托就是一个对象),委托的本质是类,在用new的表达式中要封装的就是方法名,而不包括方法的参数和返回值(如果是非静态的方法还要指出方法所属的对象)。

委托是一种引用方法类型,一旦委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。委托可以看作是对函数的抽象,是函数的‘类’,委托的实例将代表一个具体的函数。

例如大话设计中委托的使用。

在大话设计模式中,观察者模式的缺点是‘抽象的通知者’还是依赖于‘抽象的观察者’。为了更好的实现通知者和观察者的分离,完全由客户端来决定通知谁,在这其中就是用了委托来进一步的优化。

抽象观察者和抽象通知者的依赖。


不难看出观察者和通知者是相互依赖的关系。为了使他们以及实现通知者接口和观察者抽象类的子类独立性强,实现有客户端来操作,这里面就是用委托来实现的通知者和观察者的分离。

去掉抽象观察者,保留抽象通知者,同时去掉增加和减少观察者的方法,去掉与观察者的依赖关系,而是在具体的观察者类中声明了委托事件,在客户端实现委托方法的传递。

客户端中使用的委托,搭载委托对象。

一个委托可以搭载多个方法,所有方法被依次唤起。并且可以使得委托对想所搭载的方法并不需要属于同一个类。

委托前提:委托对象所搭载的所有方法必须具有相同的圆形和形式,也就是拥有相同的参数列表和返回值类型。(在这里面Update方法和两个观察类中的CloseStockMarket和CloseNBADirectSeeding的方法都是没有参数的。)

分享到:
评论

相关推荐

    vb.net 最简单的理解委托

    初学.net委托迷糊人的朋友,看看俺超精简的代码能不能帮到你,代码中有部分注解能够快速引导你去理解委托,弄明白了告诉俺一声,一起高兴高兴,嘿嘿!

    C# 委托的例子-快速理解委托

    C# 委托的例子--快速理解委托

    通过委托的实际应用理解委托

    CSDN博客的源码。通过委托的实际应用理解委托 。

    自己做的理解委托事件

    自己做的理解委托事件

    C# 委托 和 事件在 .net Framework中的应用

    委托 和 事件在 .net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    C#中委托与事件的区别

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件。对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件...

    初步理解委托、事件、匿名方法和Lambda1

    声明了一种委托类型MyDelegate(委托有不同类型,就好像中间人有不同类型,你想相亲就找媒婆这种中间人,你想看风水,就找风水大师这种中间人),这种委托类型只

    .net C#中的委托和事件

    委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    C#的委托和事件详解

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    C#中的委托和事件(HTML)

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    C#中的委托和事件详解(含源码)

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    很详细的描述委托和事件的文档

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真 是太容易了,而没有过去的人每次见到委托和事件就...

    C#委托时间最好的教程

    委托 和 事件在 .Net Framework 中的应用非常广泛,然而,较好地理解委托和事件对很多 接触 C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易 了,而没有过去的人每次见到委托和...

    C#委托与事件

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    C#零基础学习理解委托

    C#零基础学习理解委托,需要的朋友可以参考一下

    C#中的委托与事件

    理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例...

    C#中的委托和事件

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    C#基础温习: 理解委托和事件

    简单理解,委托是一种可以把函数当做参数传递的类型。很多情况下,某个函数需要动态地去调用某一类函数,这时候我们在参数列表放一个委托当做函数的占位符。在某些场景下,使用委托来调用方法能达到减少代码量,实现...

    C# 中的委托和事件

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

Global site tag (gtag.js) - Google Analytics