首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delegate类的用例

Delegate类的用例
EN

Stack Overflow用户
提问于 2013-03-19 21:57:03
回答 1查看 218关注 0票数 1

由于MulticastDelegate是.NET的统治委托类,我想问一下,有没有使用Delegate类的用例?

我的意思是,如果我有一个类型为Delegate的变量和另一个类型为MulticastDelegate的变量,将会调用不同的方法覆盖(例如GetInvocationList),但是如果每个单一程序员定义的委托都继承自MulticastDelegate,那么使用Delegate类有什么意义呢?

如果像我假设的那样没有,那么是否应该用带注释的ObsoleteAttribute标记为使用MulticastDelegate呢?

或者编译器不应该默默地将"Delegate variable1;“改为"MulticastDelegate variable1;”吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-19 22:00:06

它并没有过时,我也看不出有什么理由这样标记它。

如果您需要的唯一成员是由Delegate提供的,为什么还要使用MulticastDelegate

根据我的经验,在.NET应用编程接口中,Delegate作为“任何委托”出现的次数要比MulticastDelegate多得多。例如:

  • LambdaExpression.Compile
  • Control.Invoke

这两个类都存在肯定是由于历史上的偶然,但这并不是反对只使用Delegate的理由。

此外,您还需要编写:

我的意思是,如果我有一个委托类型的变量和另一个MulticastDelegate类型的变量,就会调用不同的方法重载(例如GetInvocationList)

不,GetInvocationList没有超载。它是MulticastDelegate中的,但不会超载。哦,注意那个方法的返回类型-它是Delegate[],而不是MulticastDelegate[]

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15501491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档