24

非常简单的问题:当我有一个可持久对象时,它通常有一个名为 ID 的属性(用于抽象类)。

那么..是命名约定ID还是Id?

例如。

public int ID { get; set; }

或者

public int Id { get; set; }

干杯:)

PS。这是.NET顺便说一句。FXCop 配置将是一个奖励。

4

9 回答 9

29

我通常使用Identifier。如果我真的想保持简短(例如,作为较长标识符的一部分),我会使用 Id,除非它是参数或私有成员。

.NET Framework 命名指南这样说:

首字母缩略词是由术语或短语中单词的字母组成的单词。例如,HTML 是超文本标记语言的首字母缩写。仅当缩写词广为人知且易于理解时,才应在标识符中包含缩写词。首字母缩略词与缩写词的不同之处在于缩写词会缩短一个单词。例如,ID 是标识符的缩写。通常,库名称不应使用缩写。

标识符中可以使用的两个缩写是 ID 和 OK。在 Pascal 大小写标识符中,它们应该显示为 Id 和 Ok。如果用作驼峰式标识符中的第一个单词,它们应该分别显示为 id 和 ok。

于 2008-11-05T11:01:22.370 回答
9

无论你喜欢它是什么,只要保持一致。ID不是一个词,它是身份的缩写。如何写缩写是人们长期争论的话题。例如是吗

getResourceURL

或者

getResourceUrl

实际上两者都可以在不同的框架中使用。另一个流行的缩写。有类似问题的是UTF8。

保持一致很重要,否则人们总是必须为每种方法查找正确的大小写,如果每种方法都以不同的方式处理它。

我对此有自己的约定。如果缩写。位于名称的末尾,全部大写,如果在其他地方,则遵循骆驼符号规则。例如

getResourceURL
urlOfResource
compareUrlToString

为什么?我喜欢缩写。要大写。大多数人希望 URL 或 UTF 大写。但是,如果在名字的中间,它会破坏骆驼符号的优势。骆驼记法的优点是您可以看到一个新单词的首字母大写。所以比较:

compareURLToString
compareUrlToString

在第一种情况下,我没有立即看到 URL 是一个单词,而 To 是下一个单词。T 可能是 URL (URLT) 的一部分并且是不同的缩写,因此我将使用第二种形式。但是,如果它在末尾,它将不起作用,没有其他单词,因此我更喜欢大写形式。我在所有代码中都坚持这个约定。

于 2008-11-05T11:00:28.063 回答
8

指导方针说“Id”。

幸运的是,.Net 的人很友好地给了我们“命名准则”而不是“命名规则”;),所以基本上,如果你强烈认为违反准则规则确实比遵循它更有价值,那么一定要打破它,如果他们理解你的原因,没有人会追究你的责任(比如它提供了更多的可读性并强调了名称的含义)

在我的店里,我们使用“ID”,即使指南说“Id”,但没有人真的对此感到内疚。

于 2008-11-05T11:12:59.663 回答
4

正如其他人指出的那样,根据 .NET 约定,Id 是正确的,但不知何故感觉不对,所以很多人使用 ID(并且仍然存在)。

我不知道你的字段的内容是什么(数字、字符串、guid),但如果你想跳过这个问题,你可以简单地为对象标识符使用另一个 .NET 约定:名称

于 2008-11-05T11:23:07.147 回答
2

我们在内部使用 ID,因为在我看来,ID 就像心理学说话,但 FxCop 抱怨说,因为 ID 不是首字母缩写词,它是缩写(用于身份/标识符)。根据 FxCop 规则,只有两个字符长的首字母缩写词才允许全部大写。其他一切都应该是正确的情况。

我们在 ID 属性上放了一个 SuppressMessage 属性,大家都很高兴。

于 2008-11-05T10:58:12.203 回答
2

“ID”是 FxCop 命名规则中硬编码的缩写之一,即使它们是其他单词的一部分,也总是被认为拼写错误。我发现覆盖它的唯一方法是将“ID”添加到 Acronyms as ():

<Dictionary>
<Acronyms>
   <CasingExceptions>
        <Acronym>ID</Acronym>
  </CasingExceptions>
</Acronyms>
</Dictionary>

它适用于 FxCop 1.36。PS 一般来说,我认为“Id”是一个更好的选择,但有时如果它是基于我们无法控制的 XML 文件(或 Web 服务)生成的,则无法更改名称

于 2009-04-23T16:12:59.297 回答
1

我更喜欢 ID,也与其他词(例如 CustomerID)结合使用,但严格来说,这违反了常规命名约定。

于 2008-11-05T10:57:07.790 回答
0

我们在这里将“Id”或其他首字母缩略词视为一个词,而“Id”是一个简单的词,因为在银行业务中我们确实得到了很多奇怪的字母组合。所以我们把它当作一个单词,只有第一个字母大写,这就是我们最终在我们的内部编码约定文件中被定义的方式。

但底线是:选择对开发人员团队和其他查看源代码并坚持使用的人来说更舒适的约定。

于 2008-11-05T11:12:50.940 回答
0

http://en.wiktionary.org/wiki/id#Abbreviation

为什么要打呢?

于 2009-07-15T15:59:30.970 回答