Поиск…


Вступление

В этом разделе описываются основные соглашения об именах, используемые при записи на языке C #. Как и все соглашения, они не применяются компилятором, но обеспечивают читаемость между разработчиками.

Подробные рекомендации по разработке .NET Framework см. В документе docs.microsoft.com/dotnet/standard/design-guidelines .

замечания

Выбор легко читаемых имен идентификаторов

Например, свойство с именем HorizontalAlignment более читается на английском языке, чем AlignmentHorizontal.

Благодарите читателя за краткость

Имя свойства CanScrollHorizontally лучше, чем ScrollableX ( CanScrollHorizontally ссылка на ось X).

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

Не используйте венгерскую нотацию

Венгерская нотация - это практика включения префикса в идентификаторы для кодирования некоторых метаданных о параметре, таких как тип данных идентификатора, например string strName .

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

Аббревиатуры и Акронимы

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

Соглашения о капитализации

Следующие термины описывают различные способы идентификации идентификаторов.

Корпус Pascal

Первая буква в идентификаторе и первая буква каждого последующего конкатенированного слова капитализируются. Вы можете использовать случай Pascal для идентификаторов трех или более символов. Например: BackColor

Корпус верблюда

Первая буква идентификатора является строчной буквой и первая буква каждого последующего конкатенированного слова капитализируется. Например: backColor

Верхний регистр

Все буквы в идентификаторе капитализируются. Например: IO


правила

Если идентификатор состоит из нескольких слов, не используйте разделители, такие как символы подчеркивания («_») или дефисы («-») между словами. Вместо этого используйте обсадную колонну, чтобы указать начало каждого слова.

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

Идентификатор случай пример
Локальное значение верблюд carName
Учебный класс паскаль AppDomain
Тип перечисления паскаль Равен
Значения перечисления паскаль Фатальная ошибка
Событие паскаль ValueChanged
Класс исключений паскаль WebException
Статическое поле только для чтения паскаль RedValue
Интерфейс паскаль IDisposable
метод паскаль Нанизывать
Пространство имен паскаль System.Drawing
параметр верблюд TYPENAME
Имущество паскаль BackColor

Более подробную информацию можно найти в MSDN .

Интерфейсы

Интерфейсы должны быть названы именами или существительными фразами или прилагательными, описывающими поведение. Например, IComponent использует описательное существительное, ICustomAttributeProvider использует именную фразу, а IPersistable использует прилагательное.

Названия интерфейсов должны иметь префикс с буквой I , чтобы указать, что тип является интерфейсом, и использовать паскаль.

Ниже приведены правильно названные интерфейсы:

public interface IServiceProvider
public interface IFormatable

Частные поля

Существуют два общих соглашения для частных полей: camelCase и _camelCaseWithLeadingUnderscore .

Чехол для верблюда

public class Rational
{
    private readonly int numerator;
    private readonly int denominator;

    public Rational(int numerator, int denominator)
    {
        // "this" keyword is required to refer to the class-scope field
        this.numerator = numerator;
        this.denominator = denominator;
    }
}

Костюм верблюда с подчеркиванием

public class Rational
{
    private readonly int _numerator;
    private readonly int _denominator;

    public Rational(int numerator, int denominator)
    {
        // Names are unique, so "this" keyword is not required
        _numerator = numerator;
        _denominator = denominator;
    }
}

Пространства имен

Общий формат пространств имен:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].

Примеры включают:

Fabrikam.Math
Litware.Security

Префикс имен пространства имен с названием компании не позволяет именам из разных компаний иметь одно и то же имя.

Перечисления

Используйте уникальное имя для большинства Enums

public enum Volume
{
   Low,
   Medium,
   High
}

Используйте множественное имя для типов Enum, которые являются битовыми полями

[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}

Примечание. Всегда добавляйте FlagsAttribute к типу Enum типа бит.

Не добавляйте «перечисление» в качестве суффикса

public enum VolumeEnum // Incorrect

Не следует использовать имя перечисления в каждой записи

public enum Color
{
    ColorBlue, // Remove Color, unnecessary
    ColorGreen,
}

Исключения

Добавить «исключение» в качестве суффикса

Пользовательские имена исключений должны быть помечены как «Исключение».

Ниже приведены корректно названные исключения:

public class MyCustomException : Exception
public class FooException : Exception


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow