Подтвердить что ты не робот

Соглашение об именах .NET для "ID" (все идентификаторы: капитализация)

Я собираюсь объединить эти несогласованные соглашения об именах и эта проблема в последнее время немного сбила меня с ума.

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

**** Вопрос **: В .NET, как вы, например, используете "ID" ? Например, nodeID, nodeId? FolderID или FolderId?

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

Спасибо

4b9b3361

Ответ 1

Заглавие состоит из двух букв сокращений. UI, IP и т.д.

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

Ответ 2

Принципы именования Microsoft предлагают использовать все заглавные буквы для 2-буквенных акронимов, сделанных в идентификаторы (IP, IO, UI и т.д.), поэтому Я склоняется к "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 всегда должен быть в нижнем регистре.

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

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