Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Это содержимое перепечатывается разрешением Pearson Education, Inc. из руководства по проектированию платформы: соглашения, идиомы и шаблоны для повторно используемых библиотек .NET, 2-го выпуска. Этот выпуск был опубликован в 2008 году, и книга с тех пор была полностью пересмотрена в третьем выпуске. Некоторые сведения на этой странице могут быть устаревшими.
В этом разделе описан простой метод использования, который при согласованном применении делает идентификаторы типов, членов и параметров легко считываемыми.
Правила прописи для идентификаторов
Чтобы отличить слова в идентификаторе, заглавите первую букву каждого слова в идентификаторе. Не используйте подчеркивания для отличия слов или в любом месте идентификаторов. Существует два подходящих способа капитализации идентификаторов в зависимости от их использования.
PascalCasing
верблюдьи
Соглашение PascalCasing, используемое для всех идентификаторов, кроме имен параметров, прописывает первый символ каждого слова (включая акронимы длиной более двух букв), как показано в следующих примерах.
PropertyDescriptor
HtmlTag
Особый случай делается для двухбуквенных акронимов, в которых обе буквы заглавные, как показано в следующем идентификаторе:
IOStream
Соглашение camelCasing, используемое только для имен параметров, прописывает первый символ каждого слова, кроме первого слова, как показано в следующих примерах. Как показано в примере, двухбуквенные акронимы, начинающие идентификатор в стиле CamelCase, указаны строчными буквами.
propertyDescriptor
ioStream
htmlTag
✔️ Используйте PascalCasing для всех общедоступных элементов, типов и пространств имен, состоящих из нескольких слов.
✔️ Обязательно используйте стиль написания «camelCasing» для имен параметров.
В следующей таблице описываются правила прописи для различных типов идентификаторов.
Идентификатор | Регистр | Пример |
---|---|---|
Пространство имен | Паскаль | namespace System.Security { ... } |
Тип | Паскаль | public class StreamReader { ... } |
Интерфейс | Паскаль | public interface IEnumerable { ... } |
Метод | Паскаль | public class Object { public virtual string ToString(); } |
Недвижимость | Паскаль | public class String { public int Length { get; } } |
Событие | Паскаль | public class Process { public event EventHandler Exited; } |
Поле | Паскаль | public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; } |
Значение перечисления | Паскаль | public enum FileMode { Append, ... } |
Параметр | Верблюд | public class Convert { public static int ToInt32(string value); } |
Правила написания с заглавной буквы составных слов и распространённых терминов
Большинство составных терминов рассматриваются как отдельные слова для целей прописи.
❌ НЕ записывать каждое слово с заглавной буквы в так называемых закрытых словосочетаниях.
Это составные слова, написанные как одно слово, например конечная точка. Для целей руководства по регистру следует рассматривать составное слово с закрытой формой как одно слово. Используйте текущий словарь, чтобы определить, записывается ли составное слово в закрытой форме.
Паскаль | Верблюд | Не |
---|---|---|
BitFlag |
bitFlag |
Bitflag |
Callback |
callback |
CallBack |
Canceled |
canceled |
Cancelled |
DoNot |
doNot |
Don't |
Email |
email |
EMail |
Endpoint |
endpoint |
EndPoint |
FileName |
fileName |
Filename |
Gridline |
gridline |
GridLine |
Hashtable |
hashtable |
HashTable |
Id |
id |
ID |
Indexes |
indexes |
Indices |
LogOff |
logOff |
LogOut |
LogOn |
logOn |
LogIn |
Metadata |
metadata |
MetaData, metaData |
Multipanel |
multipanel |
MultiPanel |
Multiview |
multiview |
MultiView |
Namespace |
namespace |
NameSpace |
Ok |
ok |
OK |
Pi |
pi |
PI |
Placeholder |
placeholder |
PlaceHolder |
SignIn |
signIn |
SignOn |
SignOut |
signOut |
SignOff |
UserName |
userName |
Username |
WhiteSpace |
whiteSpace |
Whitespace |
Writable |
writable |
Writeable |
Чувствительность к регистру
Языки, которые могут работать в среде CLR, не обязаны поддерживать чувствительность к регистру, хотя некоторые её поддерживают. Даже если ваш язык программирования поддерживает это, другие языки, которые могут обращаться к вашей системе, этого не делают. Таким образом, любые API, которые являются внешне доступными, не могут полагаться только на регистр, чтобы различать два имени в одном контексте.
❌ НЕ предполагайте, что все языки программирования чувствительны к изменению регистра. Они нет. Имена не могут отличаться по одному регистру.
© Часть 2005, 2009 Корпорация Майкрософт. Все права защищены.
Перепечатан с разрешения Pearson Education, Inc. из Руководство по проектированию: Соглашения, идиомы и шаблоны для повторного использования библиотек .NET, 2-е издание Кшиштоф Чвалина и Брэд Абрамс, опубликованное 22 октября 2008 года Addison-Wesley Профессиональный в рамках серии разработки Microsoft Windows.