这是情况。我正在审查一些我没有编写的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。
我的问题是 - 在设置任意事件处理(顺序无关紧要)时是事件引发和方法调用的顺序还是重要(不同的顺序会给你不同的结果)?
提前致谢。
答案 0 :(得分:6)
我认为订单不会改变。我怀疑你的事件名称和方法名称只是令人困惑。
你必须这样说明我相信:
<object>.<event name> += <event handler>;
答案 1 :(得分:2)
这些声明完全相同。 命名不一致,这可能让您感到困惑,但在每种情况下,+=
左侧的对象都是事件,右侧的对象是处理程序。
答案 2 :(得分:0)
在任何标准实现中,应该没有区别。但如果你是偏执狂,请检查代码。它可以具有自定义add
/ remove
实现,这些实现可以做出疯狂的事情。但那会......疯狂。