.NET中的订单如何委托连接?

时间:2010-07-01 22:10:57

标签: c# event-handling

这是情况。我正在审查一些我没有编写的SDK代码,因为我的任务是起草开发人员的文档。在一个类中,在构造函数中,事件处理设置如下:

_engine.ReceiverEvents_OnPosition += OnPosition;
_engine.ConnectionEvents_OnDeviceStatus += OnDeviceStatus;
_engine.ConnectionEvents_OnErrorStatus += OnErrorStatus;
_engine.ReceiverEvents_OnConstellation += OnConstellation;

排序首先是事件提升;方法 - 呼叫第二。

在另一个类中,在方法(不是构造函数)中,事件处理设置如下:

_captureManager.PositionLogged += CaptureManager_PositionLogged;
_captureManager.GeometryCaptureStarted += CaptureManager_GeometryCaptureStarted;

排序方法是首先调用Method-To-Call,然后是Event-Raised second。

我的问题是 - 在设置任意事件处理(顺序无关紧要)时是事件引发和方法调用的顺序还是重要(不同的顺序会给你不同的结果)?

提前致谢。

3 个答案:

答案 0 :(得分:6)

我认为订单不会改变。我怀疑你的事件名称和方法名称只是令人困惑。

你必须这样说明我相信:

<object>.<event name> += <event handler>;

答案 1 :(得分:2)

这些声明完全相同。 命名不一致,这可能让您感到困惑,但在每种情况下,+=左侧的对象都是事件,右侧的对象是处理程序。

答案 2 :(得分:0)

在任何标准实现中,应该没有区别。但如果你是偏执狂,请检查代码。它可以具有自定义add / remove实现,这些实现可以做出疯狂的事情。但那会......疯狂。