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

Замечание

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

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

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

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

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

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

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

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

✔️ Да, называйте свойства с использованием существительных, существительных словосочетаний или фраз с прилагательными.

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

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

Обычно этот шаблон указывает, что свойство должно быть методом.

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

✔️ Используйте утвердительные фразы для названий логических свойств (CanSeek вместо CantSeek). При необходимости логические свойства можно также предварять префиксами "Is", "Can" или "Has", но только в тех случаях, когда это добавляет ценность самому свойству.

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

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

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

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

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

✔️ Назовите события с использованием глагола или глагольной фразы.

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

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

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

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

Следует именовать обработчики событий (делегаты, используемые в качестве типов событий) с суффиксом «EventHandler», как показано в следующем примере.

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

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

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

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

Имена полей

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

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

✔️ Назовите поля, используя существительное, словосочетание или прилагательное.

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

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

© Часть 2005, 2009 Корпорация Майкрософт. Все права защищены.

Перепечатан с разрешения Pearson Education, Inc. из Руководство по проектированию: Соглашения, идиомы и шаблоны для повторного использования библиотек .NET, 2-е издание Кшиштоф Чвалина и Брэд Абрамс, опубликованное 22 октября 2008 года Addison-Wesley Профессиональный в рамках серии разработки Microsoft Windows.

См. также