Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 你怎么知道';当MSDN不';你没有表现出来吗?_C#_.net - Fatal编程技术网

C# 你怎么知道';当MSDN不';你没有表现出来吗?

C# 你怎么知道';当MSDN不';你没有表现出来吗?,c#,.net,C#,.net,好吧,我知道标题很混乱。让我用一个例子来解释我的意思: (我从我正在读的书中得到了一个例子,这本书是“带有.NET和.NET内核的Pro C#”) listofHandler是委托CarEngineHandler的一个实例。 我的问题是关于这一行的: listOfHandlers = Delegate.Combine(listOfHandlers, methodToCall) as CarEngineHandler; 在这里,您可以看到我正在调用静态方法Combine()。您可以看到我正在将其

好吧,我知道标题很混乱。让我用一个例子来解释我的意思:

(我从我正在读的书中得到了一个例子,这本书是“带有.NET和.NET内核的Pro C#”)

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;