78

我尝试在我的命名中语法正确*。我一直使用filename而不是fileName. java 约定似乎也使用了这个,但 FxCop 更喜欢fileName.

维基百科上有一个关于它的讨论。我读的越多,我就越觉得我是对的(这很常见!:))。有没有人有明确的答案,或者这仅仅是主观的东西?

* 我只希望这篇文章没有语法错误!

4

9 回答 9

45

字段和参数建议使用小写驼峰式。

示例 1

fileName // for fields, parameters, etc.
FileName // for properties, class names, etc.

通常,fileName使用而不是filename;您可以通过阅读 Microsoft 创建的开源内容的源代码来验证这一点,例如Enterprise Library

原因

  1. 这背后的要点是在这种情况下名称更具可读性。
  2. 当在同一方法(类..)中使用多个参数(字段、变量..)并且具有相同前缀“文件”时,这种方法还增加了一致性,如下所示:
  3. ...还有其他一些原因,但它们更主观。

示例 2

fileName, fileSize... // instead of filename AND filesize

另见

有关完整的命名约定规则,我建议查看这本书:

并在IDesign.net上查看一些东西

于 2009-04-12T17:57:13.083 回答
27

'filename'假设这个词描述了一个像“cow”或“chair”这样的单一对象,
'fileName'假设这是一个复杂的对象,有一个名为文件的对象,并且这个对象描述了该文件的名称。

两种哲学方法,任你选择。

于 2009-04-12T18:01:01.950 回答
17

可以用英文写“文件名”或“文件名”。当您将其转换为编码时,大写“n”或不大写“n”可以采用任何一种方式(假设 camelCase 或 PascalCase)。

顺便说一句,你确实在问题中犯了一个语法错误——具有讽刺意味的是,在你表达你希望没有语法错误的句子中。你说,“我只希望这篇文章没有语法错误!” 但是“errors”是复数形式,因此“there's”的“is”代表主谓不一致。

* 我只希望这篇文章没有语法错误!

于 2018-06-22T17:28:11.573 回答
12

就我而言,

thisIsMuchMoreReadablereadingthis

于 2009-04-12T17:59:57.087 回答
9

我认为这里的答案涉及两个问题。

  • 'FileName' vs 'Filename' ('name' 应该是一个单独的词)

  • 'fileName' vs 'FileName'(第一个字符应该小写)。

在大多数情况下,我更愿意将这个词视为一个完整的词“文件名”。我也更喜欢以小写字母开头的变量/方法,以便于代码完成菜单导航。

我想骆驼大小写的问题也在这里,我认为应该用它来区分多词名称。

于 2009-04-12T18:18:12.097 回答
4

FxCop 是一个自动化工具这不是显而易见的答案吗?它认识到“name”是一个单词,因此建议以大写 N 开头。我们碰巧知道“filename”也是一个单词,因此只有第一个 F 应该大写。

于 2009-04-12T18:05:07.120 回答
2

这里没有真正的对与错。

这纯粹是主观的,并且与您所在的社区完全相关。如果您经常遇到的 FxCop 和 StyleCop 以及 .net 代码使用的是 fileName,那么请使用 fileName。如果它正在使用其他东西,那么就使用它。

您的首要任务可能应该是与您自己的代码中的模式保持一致,然后与您的社区保持一致。

在这种特殊情况下,.net Reflector 使用 fileName 显示了很多 .net 代码,所以我会亲自使用该模式。

如果您在 Java 世界中运行 PMD 和 checkstyle 并且他们的 api 经常使用文件名,那么我会选择这样做。

除了维基百科的命名文章,还有Kernighan 和 Pike的 The Practice of Programming。它的第一章涉及很多命名和代码一致性问题。

于 2009-04-12T18:11:12.910 回答
2

文件名 ~ 给以电子方式存储的计算机文件的识别名称,符合操作系统施加的限制,如长度或字符的限制选择。

在过去,这被认为是两个词,但现在被定义为一个词,所以

var 文件名 = ......

如果是两个词

var 文件名 = ....

于 2016-04-22T22:01:19.180 回答
0

如果您正在编写 c/c++,则很容易使用人们可以实际阅读的名称;ie filename 很好,yet_another_file_name 也很好(假设您没有将 filename 视为正确的英文单词 - 我通常会这样做)。

谷歌编码标准

于 2009-04-12T20:13:12.007 回答