非常简单的问题:当我有一个可持久的对象时,它通常有一个名为ID的属性(用于抽象类).
那么..是命名约定ID还是Id?
例如.
public int ID { get; set; }
要么
public int Id { get; set; }
欢呼:)
PS.这适用于.NET btw.FXCop conformat将是一个奖金.
我通常选择Identifier.如果我真的想保持简短(例如,作为更长标识符的一部分),我使用Id,除非它是参数或私有成员.
在.NET框架的命名规则,这样说:
首字母缩略词是由术语或短语中的单词字母组成的单词.例如,HTML是Hypertext Markup Language的首字母缩写.只有在众所周知且易于理解的情况下,才应在标识符中包含首字母缩略词.缩略语与缩写的不同之处在于缩写缩短了单个单词.例如,ID是标识符的缩写.通常,库名称不应使用缩写.
可以在标识符中使用的两个缩写是ID和OK.在Pascal标识的标识符中,它们应显示为Id,然后显示.如果用作驼峰标识符中的第一个单词,它们应分别显示为id和ok.
无论你喜欢什么,只要保持一致.ID不是单词,它是身份的缩写.如何写缩写是人们长期争论的问题.就是这样
getResourceURL
要么
getResourceUrl
实际上两者都可以在不同的框架中使用.另一个流行的abbr.与类似的问题是UTF8.
保持一致非常重要,因为否则人们总是必须为每个方法查找正确的大小写,如果每个方法都以不同的方式处理它.
我有自己的约定.如果abbr.在名称的末尾,它全部大写,如果它在其他地方,它遵循骆驼符号规则.例如
getResourceURL urlOfResource compareUrlToString
为什么?我喜欢abbr.资本化.大多数人都希望URL或UTF大写.但是,如果在名称的中间,它会破坏骆驼表示法的优点.骆驼表示法的优点是你可以通过大写来查看新单词的起始位置.所以比较:
compareURLToString compareUrlToString
在第一种情况下,我没有立即看到URL是一个单词而To是下一个单词.T可能是URL(URLT)的一部分,并且是不同的缩写,因此我将使用第二种形式.如果它在最后,它将不起作用,没有其他单词,因此我更喜欢大写形式.我在所有代码中坚持这个约定.
准则说"Id".
幸运的是.Net人员很友好地给我们"命名指南"而不是"命名法则";),所以基本上如果你强烈认为违反指南规则确实增加了比追随它更多的价值,那么通过一切手段打破它如果他们理解你的理由(没有人提供更多的可读性并强调名称的含义),没有人会对你负责
在我的商店,我们使用'ID',即使指南说'Id',但没有人,真的对此感到内疚.