委托调用顺序

时间:2019-01-28 13:10:53

标签: c# delegates

我在“ C#考试参考70-483编程-Rob Miles 2nd Edition”一书中找到了这一部分:

  

活动订阅者
  订阅者使用+ =运算符绑定到发布者。 + =运算符是   重载以在委托和行为之间应用。意思是“添加此   代表该委托人的行为。”委托中的方法不是   确保将它们添加到委托中的顺序被调用。

这部分的最后一句话令人困惑。据我所知,调用列表is preserved的顺序。
或我误解了,这仅表示答案中提到的内容:

  

通常,对于事件,不能保证任何事情-这取决于实现。

有人可以澄清吗?

1 个答案:

答案 0 :(得分:0)

我的理解的确是最后“没有保证”。

是的,似乎Delegate.Combine保留了调用列表(即要调用的方法的列表)的顺序。但是,如果同时“不保证以添加的顺序调用这些方法”(对于委托,即委托中的调用列表),则似乎无论如何对它们进行排序在该列表中,它们可能会以其他任何顺序被调用。