使用委托的好处

问题描述

ClassDelegates{//定义委托publicdelegateintCall(intnum1,intnum2);classMath{publicintMultiply(intnum1,intnum2){//实现}publicintDivide(intnum1,intnum2){//实现}}classTestDelegates{staticvoidMain(){CallobjCall;MathobjMath=newMath();objCall=newCall(objMath.Multiply);}}}请教各位,在Main方法里这么写比MathobjMath=newMath();objMath.Multiply();的好处在哪里

解决方案

解决方案二:
这样只是演示委托的用法,不算是实际应用,无可比性(个人观点)
解决方案三:
这个例子只是告诉了你怎么使用委托,没有区别具体的好处,自己看看委托方面吧。
解决方案四:
这只是个入门的例子!!!
解决方案五:
用委托方便灵活不受接口的限制
解决方案六:
发表于:2008-06-2516:38:391楼得分:0这样只是演示委托的用法,不算是实际应用,无可比性(个人观点)请问那委托的实际应用是怎样的,具体的好处又是怎样
解决方案七:
对啊,你可以不知道具体该要什么调用什么函数,就写个委托,到时候再去实现。
解决方案八:
1:2种不同的用法,实现同样的功能.究竟怎么用,看个人爱好.(看哪个用法爽就用哪个)2:没有好处,就是用的时候不得不用.
解决方案九:
多线程开发中,子线程改变UI的地方,不委托不让改。
解决方案十:
委托最典型的应用是事件,每个事件的处理方法都是符合定义的委托的,我相信你不会没使用过事件吧,只不过微软都封装好了,如果想自定义控件,在控件中自己创建事件并处理,那肯定的使用委托。
解决方案十一:
你可以认为,委托是可以实现不修改类代码,就能扩展类接口的方法.
解决方案十二:
委托是一个数据类型,可能绑定方法,实现方法作为参数。
解决方案十三:
可以把它理解为函数调用指针,就发现很多好处,例如:多线程、接口
解决方案十四:
楼主可以看下这篇文章:
解决方案十五:
publicvoidtest(Callcall,inta,intb){call(a,b);}委托可以像接口一样,不需要知道具体的实现
解决方案:
使用委托可以减少ifelse的使用,提高效率
解决方案:
委托比如你写一个方法里面包含了3个子方法publicvoidDoSomething(){methodA();//你已经实现了A方法methodB();//但你不确定调用者在调用的时候具体要干什么所以就可以使用委托由调用者自己实现方法BmethodC();//你已经实现了B方法}其实我们用到的界面控件都使用了很多委托比如Button按钮微软在设计的时候它只是写了当点击的时候调用某个方法但这个方法的实现他没有实现(因为有些人用来1+1有些人用了"AB"+"CD")所以他就把OnClick做为委托由调用者自己去注册OnClick的时候具体干什么而运行系统时当用户点击了按钮它就会去调用注册在OnClick上的方法另外委托类似观测者模式你也可以看看还有我上面说的已经包含了事件最后你google一下张子阳委托我当年就是看他的后+N多练习慢慢才明白的
解决方案:
委托比如你写一个方法里面包含了3个子方法publicvoidDoSomething(){methodA();//你已经实现了A方法methodB();//但你不确定调用者在调用的时候具体要干什么所以就可以使用委托由调用者自己实现方法BmethodC();//你已经实现了B方法}其实我们用到的界面控件都使用了很多委托比如Button按钮微软在设计的时候它只是写了当点击的时候调用某个方法但这个方法的实现他没有实现(因为有些人用来1+1有些人用了"AB"+"CD")所以他就把OnClick做为委托由调用者自己去注册OnClick的时候具体干什么而运行系统时当用户点击了按钮它就会去调用注册在OnClick上的方法另外委托类似观测者模式你也可以看看还有我上面说的已经包含了事件最后你google一下张子阳委托我当年就是看他的后+N多练习慢慢才明白的

时间: 2024-10-29 23:34:49

使用委托的好处的相关文章

JavaScript中的事件委托及好处_javascript技巧

1,什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 也就是:利用冒泡的原理,把事件加到父级上,触发执行效果. 好处呢:1,提高性能. 我们可以看一个例子:需要触发每个li来改变他们的背景颜色. <ul id="ul"> <li>aaaaaaaa</li> <li>bbbbbbbb&l

表达式树和泛型委托

什么是表达式树? 表达式树又称为表达式目录树,以数据形式表示语言级代码.所有的数据都存储在树结构中,每个结点表示一个表达式(Expression).要想手动生成表达式树我们需要引用System.Linq.Expressions 命名空间,最重要的一个类是Expression,它是所有表达式的基类.例如: 1:参数表达式:ParameterExpression,就是一个方法中的参数,例如 search(string key),key可以看成是一个参数表达式. 2:二元表达式:BinaryExpre

委托的使用与原理简析

一.委托声明与本质 1.声明委托 public delegate void SayHelloDelegate(string who); 2.使用ILSpy反编译后,看其本质 public class auto ansi sealed SayHelloDelegate: MulticastDelegate 编译器自动生成了一个委托类,继承自MulticastDelegate 委托被标识为class,说明委托是一种数据类型:类 委托类即可嵌套在一个类型中定义,也可以在全局范围中定义,就是说由于委托是

解惑答疑:C#委托和事件

相信很多人一直为C#委托和事件所困惑,尤其是C#的初学者,学到这一部分会感觉比较困难,很有可能就放弃了,而且.NET对委托和事件封装得挺好,一般都不怎么用到自定义的委托和事件,所以放弃学习该技术就有了借口! 网上也有不少此类的文章,最具代表性的是张子阳的C#中的委托和事件这篇,写得的确很好,得到很多读者的赞赏,但我看评论,还是发现了些问题,因为有不少读者是看了一遍又一遍,每次感觉都蛮好,可是隔一段时间,对"委托和事件"又迷糊了,于是又来看!我真搞不懂,为什么会出现这种情况!后来想想,文

委托,事件

问题描述 请教下使用委托,和使用事件调用委托的好处,在项目里什么情况下用,最好能给个例子,谢谢 解决方案 解决方案二:事件和委托可以提供回调功能从而降低耦合或者完全解耦.委托的一个例子,可以通过函数参数传递委托来实现回调,而不用关心最终的输出对象在什么地方http://blog.csdn.net/jinjazz/archive/2008/05/07/2413039.aspx事件的一个例子,和委托类似http://blog.csdn.net/jinjazz/archive/2008/05/06/2

委托示例(利用委托对不同类型的对象数组排序)

  1using System;  2using System.Collections.Generic;  3using System.Text;  4  5namespace delegateTest  6{  7    /**//// <summary>  8    /// 演示利用委托给不同类型的对象排序  9    /// </summary> 10    class Program 11    { 12        delegate bool CompareOp(obj

C#委托介绍与简单示例

C#委托介绍 托和事件在.NET Framework[1] 中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易 C#演示委托的简单用法 例子,一个演示委托的代码,最后给出结果.  代码如下 复制代码 using System; namespace Example.Dele {  class Operations  {   public static double MulTwo(double value)   {    return value * 2;   }  

艾伟_转载:解惑答疑:C#委托和事件

相信很多人一直为C#委托和事件所困惑,尤其是C#的初学者,学到这一部分会感觉比较困难,很有可能就放弃了,而且.NET对委托和事件封装得挺好,一般都不怎么用到自定义的委托和事件,所以放弃学习该技术就有了借口! 网上也有不少此类的文章,最具代表性的是张子阳的C#中的委托和事件这篇,写得的确很好,得到很多读者的赞赏,但我 看评论,还是发现了些问题,因为有不少读者是看了一遍又一遍,每次感觉都蛮好,可是隔一段时间,对"委托和事件"又迷糊了,于是又来看!我真搞不懂,为什 么会出现这种情况!后来想想

艾伟:表达式树和泛型委托

什么是表达式树? 表达式树又称为表达式目录树,以数据形式表示语言级代码.所有的数据都存储在树结构中,每个结点表示一个表达式(Expression).要想手动生成表达式树我们需要引用System.Linq.Expressions 命名空间,最重要的一个类是Expression,它是所有表达式的基类.例如: 1:参数表达式:ParameterExpression,就是一个方法中的参数,例如 search(string key),key可以看成是一个参数表达式. 2:二元表达式:BinaryExpre