请问Deletegate方面的问题
我看了deletegate方面的介绍,明白了大致的使用,但是我有一点没有想明白,那就是在什么情况下使用deletegate。我觉得使用deletegate和直接声明一个类,创建该类的对象,然后调用该对象的方法和使用deletegate都能够实现目的,要是这样为什么要用deletegate,希望高手能帮我解释一下,谢谢 --------------------编程问答-------------------- 关注中... --------------------编程问答-------------------- 委托声明定义一种类型,它用一组特定的参数以及返回类型封装方法。对于静态方法,委托对象封装要调用的方法。对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。"委托的一个有趣且有用的属性是",它不知道或不关心自己引用的对象的类。任何对象都可以;只是方法的参数类型和返回类型必须与委托的参数类型和返回类型相匹配。 --------------------编程问答-------------------- 委托,能够把函数当作一个参数传递,我觉得是委托最主要的作用。
常规编程,会把数值、对象当作函数的参数,但不能把一个函数传递,委托恰恰能够完成这方面的缺陷。 --------------------编程问答-------------------- a --------------------编程问答-------------------- 我觉得gavinou说的有道理,的确是把函数当作参数传递,这个的确是他的特性。可是这样做和直接声明一个类创建对象,调用他的方法达到的目的和功效是一样的啊,也就是说deletegate能够实现的用声明类的方法也能实现,步骤也相差不多,那什么时候用deletegate呢,好处在哪里那?谢谢了 --------------------编程问答-------------------- 如果你一定这样说。也是可以的。我们写一个类,调用类的成员变量,没错的。那么框架是什么?类库是什么?这些就是为了使我们代码重用,委托是一个类,但是是一个特殊的类。你对这个类能修改的很少,只有参数,就是invoke的参数。其他的东西系统固定不允许改变了。这些方法的命名和实现都和框架设计有关。所以不允许改变,但使用框架,最好的选择就是用委托。而不是自己写个类似的类。不排除个别情况,自己的设计中使用类更简单。
--如果说的没道理,欢迎拍砖-- --------------------编程问答-------------------- wuyazhe看了你说的我明白一写,谢谢,能不能麻烦你再解释一下框架,为什么框架中使用deletetgate更方便? --------------------编程问答-------------------- 关注中 --------------------编程问答-------------------- 委托的功能更多应用于事件以及异步调用等.
--------------------编程问答-------------------- mark --------------------编程问答-------------------- 在C#里,除了事件能用到,其他的地方我从来没有用过委托 --------------------编程问答-------------------- 楼上不是吧,在winform中,如果你不在创建控件的线程中访问或者操作那个控件,就需要将控件上的方法用委托进行封送啊,这个还是很有用的啊。 --------------------编程问答-------------------- 学习了!呵呵 --------------------编程问答-------------------- 有个很大的好处就是把模块分离开来。
假设一个业务涉及到两个操作,按照传统的做法,是把这两个操作写在一起。如果用委托的话这两个操作就可以分离开来了。 --------------------编程问答-------------------- 学习中。。。 --------------------编程问答-------------------- 我也很少用到,学习中..... --------------------编程问答-------------------- 没用过委托!! --------------------编程问答-------------------- 看看匿名方法,就知道委托之强大了. --------------------编程问答-------------------- 1。需要做这一步,但不确定要做什么的时候。典型的事情是:饭店点里的易做图傅炒菜,菜是一定要炒的,但炒啥菜是客人点的
2。需要在某些细节上,交由客户来处理。还是炒菜,客人现在已经指定要吃白斩鸡,白斩鸡做法很简单,蒸熟了就是。但是吃白斩鸡是要沾佐料的,易做图傅也不知道客人喜欢吃啥口味滴,于是他把配佐料的权力委托给了客户,易做图傅把油盐酱醋,糖,花椒、辣椒都给客人,客人自己配配佐料,你爱吃撒口味的自己随意 --------------------编程问答-------------------- 我觉得委托最好就是能把一个方法当着一个参数进行传递,我看公司程序都是这样写的,GPS开发 --------------------编程问答--------------------
多线程这个 委托也不行的 --------------------编程问答-------------------- 可以解除耦合 --------------------编程问答-------------------- 挖坟啊
补充:.NET技术 , C#