Как порядок имеет значение в конкатенации делегатов .NET? - PullRequest
1 голос
/ 02 июля 2010

Вот ситуация.Я рассматриваю код 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-Первый вызов, второй-событие-поднятие.

Мой вопрос такой: - Произвольный порядок вызова-вызова и вызова метода при настройке обработки событий (порядок не имеет значения) илизначительный (другой порядок дает разные результаты)?

Заранее спасибо.

Ответы [ 3 ]

6 голосов
/ 02 июля 2010

Я не думаю, что порядок может измениться.Я подозреваю, что ваши имена событий и методы просто сбивают с толку.

Вы должны указать вот так, я считаю:

<object>.<event name> += <event handler>;
2 голосов
/ 02 июля 2010

Это точно такая же декларация. имя является непоследовательным, что, вероятно, сбивает вас с толку, но в каждом случае объект слева от += является событием, а объект справа - обработчиком.

0 голосов
/ 02 июля 2010

В любой стандартной реализации не должно быть никакой разницы. Но если вы параноик, проверьте код. может иметь пользовательские add / remove реализации, которые делают сумасшедшие вещи. Но это было бы ... сумасшествием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...