Поделиться через


Имена членов типа

Примечание.

Это содержимое перепечатывается разрешением Pearson Education, Inc. из руководства по проектированию платформы: соглашения, идиомы и шаблоны для повторно используемых библиотек .NET, 2-го выпуска. Этот выпуск был опубликован в 2008 году, и книга с тех пор была полностью пересмотрена в третьем выпуске. Некоторые сведения на этой странице могут быть устаревшими.

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

Имена методов

Так как методы служат для выполнения действий, при разработке рекомендуется задавать их имена глаголами или глагольными фразами. Следование этой рекомендации также помогает отличать имена методов от имен типов и свойств, использующих фразы, где главное слово — существительное или прилагательное.

✔️ Дайте имена методов, которые являются глаголами или фразами команд.

public class String {
    public int CompareTo(...);
    public string[] Split(...);
    public string Trim();
}

Имена свойств

В отличие от других элементов, свойства должны иметь имена в виде фраз на основе существительного или прилагательных. Причина в том, что свойство ссылается на данные, и это должно быть отражено в его имени. В именах свойств всегда используется PascalCase.

✔️ Свойства имени DO используют существительное, существительное слово или прилагательную фразу.

❌ Не имеют свойств, которые соответствуют имени методов Get, как показано в следующем примере:

public string TextWriter { get {...} set {...} } public string GetTextWriter(int value) { ... }

Обычно это означает, что свойство целесообразно сделать методом.

✔️ Свойства коллекции do с множественной фразой, описывающей элементы в коллекции вместо использования единственной фразы, за которой следует "List" или "Collection".

✔️ Do name Boolean properties with a утвердительная фраза (CanSeek вместо CantSeek). При необходимости можно также префиксить логические свойства с параметром Is, Can или Has, но только в том месте, где он добавляет значение.

✔️ Рекомендуется предоставить свойству то же имя, что и его тип.

Например, следующее свойство должным образом получает и задает значение перечисления с именем Color, поэтому свойство имеет имя Color:

public enum Color {...}
public class Control {
    public Color Color { get {...} set {...} }
}

Имена событий

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

✔️ События do name с глаголом или фразой команды.

Примеры: Clicked, Painting, DroppedDown и т. д.

✔️ Присвойте именам событий понятие до и после, используя текущее и прошлое время.

Например, событие закрытия, которое происходит перед закрытием окна, может называться Closing, а которое после — Closed.

❌ НЕ используйте префиксы "До" или "После", чтобы указать предварительные и постфиксы. Используйте настоящее и прошедшее время, как описано выше.

✔️ Обработчики событий DO (делегаты, используемые в качестве типов событий) с суффиксом EventHandler, как показано в следующем примере:

public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

✔️ Используйте два параметра с именем sender и e в обработчиках событий.

Параметр sender обозначает объект, который вызвал событие. Этот параметр обычно имеет тип object, даже если можно использовать более конкретный тип.

✔️ Классы аргументов события DO с суффиксом EventArgs.

Имена полей

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

✔️ Используйте PascalCasing в именах полей.

✔️ Поля имени DO, использующие существительные, существительные фразы или прилагательные.

❌ Не используйте префикс для имен полей.

Например, не используйте "g_" или "s_" для указания, что поле является статическим.

Фрагменты: © Корпорация Майкрософт (Microsoft Corporation), 2005, 2009. Все права защищены.

Перепечатано с разрешения Pearson Education, Inc. из книги Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET (2-е издание), авторы: Кржиштоф Цвалина (Krzysztof Cwalina) и Брэд Абрамс (Brad Abrams). Книга опубликована 22 октября 2008 г. издательством Addison-Wesley Professional в рамках серии, посвященной разработке для Microsoft Windows.

См. также