События C #: переопределить или зарегистрироваться? - PullRequest
0 голосов
/ 17 марта 2010

Допустим, у вас есть пользовательская форма MyForm : Form и вы хотите запустить собственный код для события OnLoad.

Существуют ли какие-либо причины для производительности, чтобы зарегистрироваться для события OnLoad и запустить свой код в методе обработчика вместо переопределения метода OnLoad, в котором вы вызываете базовый метод и выполняете свой пользовательский код?

Есть ли плюсы / минусы для того, чтобы идти тем или иным путем? Что бы вы выбрали и почему?

Ответы [ 2 ]

3 голосов
/ 17 марта 2010

Переопределение метода OnLoad позволяет запускать код как до, так и после любых других обработчиков события (которые вызываются base.OnLoad(e), или полностью их предотвращают; иногда это может быть полезно.

Кроме того, я считаю, что это будет немного быстрее.

3 голосов
/ 17 марта 2010

MSDN страница говорит это:

Метод OnLoad также позволяет производным классам обрабатывать событие, не подключая делегат. Это предпочтительный метод для обработки события в производном классе.

(выделено мое).

С точки зрения производительности, здесь разница незначительна. Если, конечно, у вас нет миллионов подписчиков.

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