参数命名:filename或fileName?

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

有关WikiPedia的讨论 。 我越读越多,我觉得我是对的(这是很平常!:))。 有没有人有一个明确的答案,或者这只是一个主观的东西?

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

推荐使用较低的骆驼情况下的字段和参数。

例1

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

通常使用fileName而不是filename ; 您可以通过阅读由Microsoft创build的开放源代码源代码(如Enterprise Library)来validation 。

理由

  1. 这个背后的主要观点是,在这种情况下名字更具可读性。
  2. 这个方法在几个参数(字段,variables..)被用在同一个方法(class ..)和相同的前缀“file”时增加了一致性 ,如下所示:
  3. 还有其他一些原因,但是他们更主观。

例2

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

另见

  • 命名约定在维基百科
  • 一般命名约定在MSDN

对于一套完整的命名约定规则,我build议阅读本书:

  • 框架devise指南:可重用.NET库的约定,习惯和模式
    (2nd Edition),由Krzysztof于2008年11月出版
    (个人而言,我们并不使用本书的100%推荐,但是总的来说,有很好的指导方针)

并且在IDesign.net上检查一些东西

'filename'假设这个单词描述了一个单独的对象,如“牛”或“椅子”
'fileName'假定这是一个复杂的对象,有一个叫做文件的对象,而这个对象描述了这个文件的名字。

两种哲学的方法,请select。

就我而言,

这比阅读这本书更可读。

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

  • '文件名'与'文件名'(应'名称'是一个单独的词)

  • '文件名'与'文件名'(应该首字符小写)。

在大多数情况下,我宁愿把这个单词当作一个单一的“文件名”来处理。 我还喜欢用小写字母开头的variables/方法,以便更容易的完成代码菜单导航。

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

FxCop是不是一个明显的答案是一个自动化的工具? 它认识到“名字”是一个词,所以它build议用大写字母N开头。我们知道“文件名”也是一个词,所以只有第一个F应该大写。

文件名〜给予电子存储的计算机文件的识别名称,符合操作系统规定的限制,如字符的长度或限制select。

在过去这被认为是两个字,但现在被定义为一个字如此

var filename = ……

如果是两个字的话

var fileName = ….

这里不可能有真正的对与错。

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

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

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

如果你在java世界,运行PMD和checkstyle,并且他们的apis经常使用文件名,那么我会去。

除了维基百科的命名文章,还有Kernighan和派克的编程实践 。 它的第一章涉及了很多命名和代码一致性问题。

如果您正在编写c / c ++,那么使用人们可以真正阅读的名称是一种强烈的倾向; 即文件名是好的,所以是yet_another_file_name(假设你不考虑文件名作为一个适当的英文单词 – 我通常这样做)。

看谷歌编码标准