Приложения на основе XAML - Соглашения об именовании событий для C # - PullRequest
1 голос
/ 14 июня 2010

Для обработки событий я начинаю видеть, что многие кодеры делают это:

XButton.Click += OnXButtonClicked()
...
void OnXButtonClicked()
{ ... }

Откуда взялась эта конвенция On_?Это просто нехорошо с точки зрения методов.

Я тоже начинаю это видеть, и мне интересно, что думают другие:

XButton.Click += HandleXButtonClick()
...
void HandleXButtonClick()
{ ... }

При использовании intellisense Visual Studio обрабатывает этивот так:

XButton.Click += XButton_Click;
...
void XButton_Click(object sender, RoutedEventArgs e)
{ ... }

Я ищу несколько советов по этим соглашениям об именах и буду очень признателен за некоторые советы.

Ответы [ 3 ]

3 голосов
/ 14 июня 2010

Поскольку это, как правило, всегда частные методы, название действительно полностью зависит от вас и вашей команды. Обработчики событий используются только в вашем частном API и являются подробностями реализации, поэтому отчасти нет никаких официальных указаний по именованию.

При этом я бы просто выбрал что-то, что имеет смысл для вас и вашей команды, и придерживался этого для последовательности.

Лично мне не нравится имя "OnXXX", так как оно несколько вводит в заблуждение. Для реализации событий предлагается использовать OnXXX в качестве защищенного метода, который вызывает событие XXX. Использование этого имени в качестве обработчика событий кажется неуместным.

Имя HandleXXX имеет смысл, учитывая, что это подписка на событие, и этот метод «обрабатывает» событие. Синтаксис Object_XXX имеет то преимущество, что он по умолчанию используется в Visual Studio, поэтому он также является хорошим выбором. При этом он часто конфликтует со схемами именования закрытых переменных и методов (поскольку они, как правило, в нижнем регистре) и вызывает жалобы на такие инструменты, как StyleCop.

0 голосов
/ 14 июня 2010

Чтобы иметь согласованную схему именования на протяжении всего моего проекта, я работаю с ней так, как это делает Skawalker, как Intellisense делает именование таким образом.

0 голосов
/ 14 июня 2010

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

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