问题描述
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多练习慢慢才明白的