由于MulticastDelegate
是.NET的委托代表类,我想问一下,是否有使用Delegate
类的用例?
我的意思是如果我有一个Delegate
类型的变量和另一个MulticastDelegate
类型的变量,将调用不同的方法覆盖(例如GetInvocationList
)但是如果每个单程序员都定义了委托继承自MulticastDelegate
使用Delegate
类可能是什么意思?
如果我认为没有,那么不应该用ObsoleteAttribute
标记并使用MulticastDelegate
代替评论吗?
或者不应该编译器以静默方式将“Delegate variable1;
”更改为“MulticastDelegate variable1;
”?
答案 0 :(得分:4)
它没有过时,我认为没有理由这样做。
如果Delegate
提供了您需要的唯一成员,为什么要使用MulticastDelegate
?
根据我的经验,Delegate
在.NET API中作为“任何委托”而不是MulticastDelegate
更常出现。例如:
这绝对只是由于历史意外导致这两个类都存在,但是没有理由弃用Delegate
的使用。
另外,你写道:
我的意思是如果我有一个Delegate类型的变量和另一个MulticastDelegate类型的变量,将调用不同的方法重载(例如GetInvocationList)
不,GetInvocationList
没有超载。它是MulticastDelegate
中的overridden,但没有超载。哦,请注意该方法的返回类型 - 它是Delegate[]
,而不是MulticastDelegate[]
。