Соглашение об именах в .NET для идентификатора - PullRequest
29 голосов
/ 27 февраля 2009

Я нахожусь в процессе унификации этих несовместимых соглашений об именах и эта проблема в последнее время немного сводит меня с ума.

В базе кода, с которой я работаю, нет соглашения относительно "ID"; «ID», «Id» и даже «iD» используются непоследовательно.

**** Вопрос **: В .NET, как вы, ребята, пишите «ID»? Например, идентификатор узла, идентификатор узла? FolderID или FolderId?

**** Редактировать **: Как насчет множественного числа случаев? тогда я должен сделать "NodeIDs" или "NodeIds"?

Спасибо

Ответы [ 7 ]

60 голосов
/ 27 февраля 2009

Прописная буква для 2 букв аббревиатуры . Пользовательский интерфейс, IP и т. Д.

"Id" - это сокращение для идентификатора, поэтому оно должно оставаться в паскалях.

30 голосов
/ 27 февраля 2009

Рекомендации Microsoft по присвоению имен предлагают использовать все заглавные буквы для двухбуквенных сокращений, превращенных в идентификаторы (IP, IO, UI и т. Д.), Поэтому I имеют тенденцию к "ID" (хотя не аббревиатура) потому что, когда я читаю это, я все еще говорю буквы индивидуально.

Но, честно говоря, я не думаю, что Microsoft знает / знает, что делать с ID / Id:

ID

System.Runtime.InteropServices._Activator.GetIDsOfNames()
System._AppDomain.GetIDsOfNames()
System.Runtime.InteropServices._Attribute.GetIDsOfNames()
System.Type.GetTypeFromProgID()
System.Threading.Thread.ThreadID
System.Threading.Thread.GetDomainID()
System.Runtime.Serialization.ObjectHolder.ContainerID
System.Globalization.Calendar.ID
System.Globalization.CultureInfo.InvariantCultureID
System.Web.UI.Control.ClientID
System.Web.UI.Control.UniqueID

Id

System.AppDomain.GetCurrentThreadId()
System.AppDomain.GetIdForUnload()
System.AppDomain.IsDomainIdValid()
System.AppDomain.GetId()
System.Attribute.TypeId
System.TypeLoadException.ResourceId
System.Reflection.AssemblyAlgorithm.AssemblyAlgorithmAttribute.AlgorithmId
System.Runtime.Remoting.Lifetime.Lease.GetNextId()
System.Xml.Xpath.XPathNavigator.UniqueId
System.Data.OleDb.DBPropSet.PropertyId

(из http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/dcb8e08b-026a-4903-a413-7dbdda131a82/)

Полагаю, именно поэтому они изобрели intellisense ...

Что касается плюрализации: на мой взгляд, s всегда должен быть в нижнем регистре.

18 голосов
/ 22 января 2015

Microsoft обновила свои рекомендации, так как этот вопрос был задан.

В статье MSDN Условные обозначения (.NET Framework 4.5) есть раздел под названием Составные слова и общие термины . В таблице в этом разделе приводятся следующие рекомендации по использованию заглавных букв для сокращения «идентификатор» при именовании идентификаторов:

  • Если применяется корпус Pascal , используйте Id . (Пример: System.Attribute.TypeId)
  • Если применяется корпус Camel , используйте id . (Пример: var id = 42;)
  • Никогда использовать ID .
9 голосов
/ 27 февраля 2009

Последним руководством является "Id", подробнее об этом и других (например, "Ok"), см. мой пост о самых последних Руководствах по проектированию рамок (2-е издание)

6 голосов
/ 27 февраля 2009

Я всегда пишу с большой буквы, когда это аббревиатура идентификатора и т. Д. Это просто выглядит неправильно и заставляет меня думать о Фрейде , в противном случае - что определенно не очень хорошая вещь.

2 голосов
/ 16 февраля 2013

Если вы захотите проверить словарь, вы обнаружите, что идентификатор не рассматривается как сокращение. На самом деле, форма указывается как ID или I.D. там. Вероятно, это связано с тем, что оно пришло из выражения типа «Документация по идентификации» или «Идентификационные данные» и изначально не воспринималось как краткая форма «Идентификатор». Таким образом, идентификатор формы не только рекомендуется, но и напрямую поддерживается словарем.

1 голос
/ 03 марта 2013

Я думаю, что причина, по которой некоторые люди используют «ID» вместо «Id», заключается в том, что это подмножество «GUID», «UUID» или «UID», которые обычно пишутся с большой буквы.

Я согласен, что это должен быть 'Id', но я думаю, что он сильно зависит от контекста, потому что в некоторых средах может быть более подходящим для использования 'ID'.

Таким образом, для меня «ID» является техническим термином и подмножеством вышеупомянутого или используется для обозначения любого из этих технических терминов, тогда как «Id» является сокращением для любого вида идентификатора и в нетехническом контексте, когда вы нужен человек, чтобы читать его, как в ваших общедоступных API или UML, вы должны (на мой взгляд) использовать «Id».

...