当前位置:  开发笔记 > 编程语言 > 正文

"ID"的.NET命名约定(任何标识:大写)

如何解决《"ID"的.NET命名约定(任何标识:大写)》经验,为你挑选了5个好方法。

我正在统一这些不一致的命名约定,这个问题最近让我发疯了.

在我正在使用的代码库中没有关于"ID"的约定; "ID","Id"甚至"iD"使用不一致.

****问题**:在.NET中,你们如何将"ID"大写?例如,nodeID,nodeId?FolderID或FolderId?

****编辑**:复数案件怎么样?那么我应该做"NodeIDs"还是"NodeIds"?

谢谢



1> Romain Verdi..:

大写是2个字母的字母缩略词.用户界面,IP等

"Id"是Identifier 的缩写,所以它应该保持pascal状态.


在复数的情况下,它仍然没有首字母缩略词,所以我会说"NodeIds".
Visual Studio中的代码分析支持此答案:"CA1709:Microsoft.Naming:通过将成员名称'InvoiceSearch.DeliveryID'更改为'Id'来纠正'ID'的大小写.'Id'是缩写,因此不受首字母缩略词套管指导的约束."
"缩写""应该保留pascal"的规则从何而来?例如,MW和OED2都称它为"缩写",两者仍然使用全大写.
它也是一般.NET命名约定中的推荐(http://msdn.microsoft.com/en-us/library/vstudio/ms229043(v=vs.100).aspx)

2> Daniel LeChe..:

微软的命名指南建议使用所有大写的2字母缩写词作为标识符(IP,IO,UI等),所以倾向于"ID"(即使它不是首字母缩略词),因为当我读它时,我仍然说这些字母个别.

但老实说,我不认为微软知道/知道如何处理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> DavidRR..:

自从提出此问题以来,Microsoft已更新其指南.

在MSDN文章Capitalization Conventions(.NET Framework 4.5)中,有一个名为Capitalizing Compound Words和Common Terms的部分.在本节的表中,在命名标识符时,"identifier"的缩写给出了以下大小写指南:

Pascal大小写适用时,使用Id.(实施例:System.Attribute.TypeId)

Camel外壳适用时,使用id.(实施例:var id = 42;)

永远不要使用ID.



4> Jeff Moser..:

最新指南是"Id",有关此内容和其他内容的更多信息(例如"Ok"),请参阅我最新的框架设计指南(第2版)


让我们一起去"好吧",让每个人都不开心:)

5> tvanfosson..:

当ID是标识符等的缩写时,我总是将ID大写.它只是看起来不对,让我想起弗洛伊德,否则 - 这绝对不是一件好事.


当我在变量或函数名称中看到Id而不是ID作为标识符的缩写时,我也倾向于想到弗洛伊德.(@jfar和tvanfosson:我不认为它是一个笑话,只是一个事实陈述.)+1与我在同一波长上(以抵消那个downvote).
容易称别人幽默,很难实现这个笑话是蹩脚的.:d
当你看到Io时,你会想到木星的月亮吗?
实际上,当我在SO中看到莎士比亚时,我会想起莎士比亚,这是一种无衬线字体!http://www.bartleby.com/70/50007.html
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有