Лучшая практика для IEnumerable в аргументах события

У меня есть DLL, включающая класс для управления аудио- и миди-портами и соединениями. Всякий раз, когда порты регистрируются или отменяются, а также создаются или освобождаются соединения, этот класс запускает событие, например ConnectionChanged, с настраиваемыми аргументами события, включая свойства Enum ChangeType и IEnumerable<Connection> ChangedConnections.

Теперь мой вопрос: должен ли я просто отправить измененные соединения или изменить свойство аргументов события на Connections и отправить IEnumerable, содержащий все активные соединения?


person Residuum    schedule 18.02.2011    source источник
comment
в типичном случае, будет ли потребитель сбрасывать все свои соединения или он захочет знать только об измененных соединениях - ваш ответ на этот вопрос, вероятно, отвечает на вопрос...   -  person Marc Gravell    schedule 18.02.2011


Ответы (1)


На мой взгляд, событие называется «ConnectionChanged», вы должны включить соединения, которые применяются к этому событию, в аргументы вашего события. Сделайте все активные соединения доступными с помощью члена вашего класса.

При запуске события. Вы отправляете фактический объект, вызвавший событие, в элементе Sender. Так что если кого-то действительно интересуют все активные подключения, их можно получить через объект Sender.

person Joep Killaars    schedule 18.02.2011
comment
Хорошо, я так уже делаю. Поскольку вы получили так много голосов, похоже, это соответствует принципу наименьшего удивления. - person Residuum; 18.02.2011