As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center作为指导。
6年前关闭。
我想问一句,因为
我的意思是,如果我有一个变量
而且,如果按照我的假设没有,是否不应该在
还是编译器不应该将“
6年前关闭。
我想问一句,因为
MulticastDelegate
是.NET的统治类,因此使用Delegate
类是否有用例?我的意思是,如果我有一个变量
Delegate
和另一个类型MulticastDelegate
,则将调用不同的方法覆盖(例如GetInvocationList
),但是如果每个程序员定义的委托都继承自MulticastDelegate
,则可能是点使用Delegate
类?而且,如果按照我的假设没有,是否不应该在
ObsoleteAttribute
后面加上注释以改为使用MulticastDelegate
?还是编译器不应该将“
Delegate variable1;
”更改为“ MulticastDelegate variable1;
”? 最佳答案
它不是过时的,我认为没有理由将其标记为此类。
如果Delegate
仅提供您需要的成员,为什么要使用MulticastDelegate
?
以我的经验,在.NET API中Delegate
出现的频率比MulticastDelegate
更高。例如:LambdaExpression.Compile
Control.Invoke
绝对是由于历史原因,两个类都存在,但这没有理由不赞成仅使用Delegate
。
另外,您编写:
我的意思是,如果我有一个Delegate类型的变量和另一个MulticastDelegate类型的变量,则将调用不同的方法重载(例如GetInvocationList)
不,GetInvocationList
不超载。在MulticastDelegate
中为overridden,但未过载。哦,请注意该方法的返回类型-它是Delegate[]
,而不是MulticastDelegate[]
。
09-30 18:54