Почему Visual Studio нарушает соглашение об именах методов в C #? - PullRequest
9 голосов
/ 27 мая 2009

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

Итак, мой вопрос: почему, когда я создаю форму, помещаю на нее элемент управления, а затем дважды щелкаю элемент управления (для метода, который автоматически создается для меня в IDE), я получаю метод, начинающийся с заглавной буквы ? (например, s electButton_Click (отправитель объекта, EventArgs e))

Ответы [ 5 ]

11 голосов
/ 27 мая 2009

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

Это может противоречить общему стандарту именования, но так было всегда.

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

Например, метод «controlName_EventName» может быть задокументирован так:

/// <summary>
/// Handles the EventName event of the controlName control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance
/// containing the event data.</param>
protected void controlName_EventName(object sender, EventArgs e)
{

вместо того, чтобы вот так: (поскольку GhostDoc обрабатывает все вышеперечисленное, я здесь занимаюсь рекламой, основываясь на опыте с неправильными именами методов):

/// <summary>
/// Control names the event name.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The e.</param>
protected void controlName_EventName(object sender, EventArgs e)
{
4 голосов
/ 27 мая 2009

Это строго не нарушает соглашение об именах .Net, потому что рекомендации применимы только к публичным методам. Однако вы можете считать, что это нарушает дух руководящих принципов.

1 голос
/ 27 мая 2009

Не нажимайте так быстро при подключении указанных обработчиков событий;) Мех, все это сгенерировано. Они могли бы поменять корпус на нем, но тогда другая половина заплачет об этом. Это проигрыш - проиграй им.

1 голос
/ 27 мая 2009

Я чувствую тебя. На самом деле, я предпочитаю следующее соглашение об именах:

OnselectButtonClick()
1 голос
/ 27 мая 2009

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

...