C#代理是不是就是委托?
答案:3 悬赏:50 手机版
解决时间 2021-03-07 05:12
- 提问者网友:呐年旧曙光
- 2021-03-06 19:53
如图,或者他们两个是分别的两个概念? 委托和事件有关联的?
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-03-06 20:52
刚刚看了一下资料,发现有些资料说的是代理,有的说是委托,但都是指同一样东西delegate,委托和事件是有关的,因为事件的本质就是多播委托,关于多播委托楼主可以找找资料就知道了。
不过个人觉得这两个概念只是相近但不等同。从实际情况来理解,代理(Proxy)其实是一种设计模式,例如:某个不想被外界访问或者禁止直接被外界的对象,此时需要有一个中介使其能够与外界进行通讯,而种中介就称做代理。而C#中的委托(Delegate)有些不同,其本质是一种函数指针,其只是把对象委托给它的方法原封不动地提供给其他对象调用,并不能做任何的修饰。而代理并不是按照原接口提供出去,其做法是自身定义一个与被代理对象相同或者相似的接口提供给外界调用,因为提供的方法完全由代理本身的性质决定。
所以个人认为C#中的delegate称为委托更加适合。
不过个人觉得这两个概念只是相近但不等同。从实际情况来理解,代理(Proxy)其实是一种设计模式,例如:某个不想被外界访问或者禁止直接被外界的对象,此时需要有一个中介使其能够与外界进行通讯,而种中介就称做代理。而C#中的委托(Delegate)有些不同,其本质是一种函数指针,其只是把对象委托给它的方法原封不动地提供给其他对象调用,并不能做任何的修饰。而代理并不是按照原接口提供出去,其做法是自身定义一个与被代理对象相同或者相似的接口提供给外界调用,因为提供的方法完全由代理本身的性质决定。
所以个人认为C#中的delegate称为委托更加适合。
全部回答
- 1楼网友:摆渡翁
- 2021-03-06 23:10
代理不是.net语言概念。。。proxy
委托是.net框架下的
- 2楼网友:长青诗
- 2021-03-06 21:54
C#中的代理就是委托,都是指delegate
只不过不同的资料翻译不同
一般情况委托用于定义事件
即指定的事件发生后,由委托负责调用相关的事件处理方法
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯