Как назвать методы, которые вызывают события? - PullRequest
4 голосов
/ 29 сентября 2010

Существуют ли рекомендации по проектированию имен методов, запускающих событие в .NET? В разных примерах я видел все:

OnPropertyChanged()
FirePropertyChanged()
TriggerPropertyChanged()
RaisePropertyChanged()

Конечно, это не так уж важно, но я бы хотел сделать это «правильно» и не путать других с необычными соглашениями об именах. =)

Ответы [ 6 ]

5 голосов
/ 29 сентября 2010

Вы должны использовать OnPropertyChanged в соответствии с MSDN , CodeProject и книгой Руководство по разработке структуры: условные обозначения, идиомы и шаблоны для многократно используемых библиотек .NET (2-е издание ) .

EDIT: Цитата из CodeProject относится только к наименованию события, например, если ваше событие сигнализирует о возникновении тревоги, его следует назвать AlarmRaised.

Обратите внимание, что в этой статье события описываются как «возбужденные» (не «запущенные» или «сработавшие»). Это соглашение исходит от команды разработчиков, которые создали большую часть .NET Framework (Cwalina and Abrams, 2006). Они предпочитают термин «поднять», потому что он не имеет отрицательной коннотации выражений «огонь» или «триггер».

3 голосов
/ 29 сентября 2010

OnPropertyChanged() звучит как связанный обработчик событий.

Я бы пошел с RaisePropertyChanged().

2 голосов
/ 29 сентября 2010

Это нормально, и принято называть его OnPropertyChanged.Он отличается подписью от организатора событий.http://msdn.microsoft.com/en-us/library/ms743695.aspx

2 голосов
/ 29 сентября 2010

Зачем вам нужен метод для вызова события?

Если вы выполняете действие извне объекта, то выполняемое вами действие должно привести к тому, что событие будет вызвано без явного вызовак методу "события".

Если ваше событие вызывается внутри, просто укажите строку RaiseEvent, когда вы хотите вызвать событие, для этого не нужно вызывать метод.

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

РЕДАКТИРОВАТЬ: Если выВы используете метод как часть реализации iNotifyPropertyChanged (вместо того, чтобы просто вызывать событие «PropertyChanged», которое требуется для iNotifyPropertyChanged ...), тогда почему бы не назвать метод «notifyPropertyChanged», чтобы показать, что это часть этой реализации?

EDIT2: код MSDN, соответствующий следующему соглашению: Как: реализовать INotifyPropertyChaинтерфейс nged

1 голос
/ 29 сентября 2010

Кроме OnPropertyChanged (), который, по крайней мере, я нахожу немного вводящим в заблуждение, вы, вероятно, могли бы использовать любой другой.

Однако, что, вероятно, более важно, это согласованность использования нотации во всем приложении.

Если вы скажете выбрать FirePropertyChanged ", что будет наиболее важным с точки зрения удобства сопровождения, так это то, что шаблон всех методов повышения свойств с префиксом« Fire »во всем приложении принудительно применяется!

0 голосов
/ 29 сентября 2010

Я бы использовал FireOnPropertyChanged ().

...