C# Language
Соглашения об именах
Поиск…
Вступление
В этом разделе описываются основные соглашения об именах, используемые при записи на языке 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