C# 你怎么知道';当MSDN不';你没有表现出来吗?
好吧,我知道标题很混乱。让我用一个例子来解释我的意思: (我从我正在读的书中得到了一个例子,这本书是“带有.NET和.NET内核的Pro C#”)C# 你怎么知道';当MSDN不';你没有表现出来吗?,c#,.net,C#,.net,好吧,我知道标题很混乱。让我用一个例子来解释我的意思: (我从我正在读的书中得到了一个例子,这本书是“带有.NET和.NET内核的Pro C#”) listofHandler是委托CarEngineHandler的一个实例。 我的问题是关于这一行的: listOfHandlers = Delegate.Combine(listOfHandlers, methodToCall) as CarEngineHandler; 在这里,您可以看到我正在调用静态方法Combine()。您可以看到我正在将其
listofHandler
是委托CarEngineHandler
的一个实例。
我的问题是关于这一行的:
listOfHandlers = Delegate.Combine(listOfHandlers, methodToCall) as CarEngineHandler;
在这里,您可以看到我正在调用静态方法Combine()
。您可以看到我正在将其强制转换为CarEngineHandler
。因此,此方法返回一个被视为委托的CarEngineHandler
实例
但让我困惑的是,当MSDN没有这样说时,我怎么知道它正在返回CarEngineHandler
的实例呢
所有这些都是:
返回值
类型:
具有调用列表的新委托,该列表连接委托
数组中委托的调用列表。如果委托
为空
,如果委托
包含零元素,或者如果委托
中的每个条目都为空
,则返回null
你完全正确,这是一个需要记录的东西。这在某种程度上意味着所有代理都必须是同一类型的(如“例外”中记录的),但这实际上并不能保证任何事情。它也是Combine对于创建每次事件发生时调用多个方法的事件处理程序非常有用。”但这实际上也不能保证任何事情
不幸的是,这只是其中一种情况,您可以从MS本身依赖于委托这一事实中看出。Combine
的行为方式永远不会改变。@zackraiyan?MSDN不仅仅是一个论坛。您将Combine方法的结果转换为CarEngineHandler。在运行时,委托实例可以是CarEngineHandler…的实例,也可以是其他类型的委托,其中cas ListofHandler可以为null。由于ListofHandler
是CarEngineHandler
和methodToCall
是CarEngineHandler
-还有什么组合可以返回?@Evk With公共委托无效CarEngineHandler(CarEngine-CarEngine)
例如,文档中似乎没有任何内容承诺结果不会被规范化为操作。
listOfHandlers = Delegate.Combine(listOfHandlers, methodToCall) as CarEngineHandler;