参数命名:filename还是fileName?

时间:2009-04-12 17:55:03

标签: .net naming-conventions naming fxcop

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

关于它有一个discussion on WikiPedia。我读的越多,我就越觉得我是对的(这很常见!:))。有没有人有明确的答案或者这仅仅是主观的?

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

9 个答案:

答案 0 :(得分:34)

Lower camel case建议用于字段和参数。

示例1

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

通常使用fileName而非filename;您可以通过阅读Microsoft创建的开源资料的源代码来验证,例如Enterprise Library

<强>原因

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

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

    另见

    对于完整的命名约定规则,我建议您查看本书:

    并在IDesign.net

    检查一些内容

答案 1 :(得分:23)

'filename'假设这个词描述了一个像'牛'或'椅子'这样的单一对象 'fileName'假设这是一个复杂的对象,有一个名为file的对象,该对象描述了该文件的名称。

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

答案 2 :(得分:9)

就我而言,

  

thisIsMuchMoreReadable比   readingthis。

答案 3 :(得分:8)

我认为这里的答案涵盖了两个问题。

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

  • 'fileName'vs'FileName'(首先应该 字符为小写)。

在大多数情况下,我更喜欢将这个单词视为一个单词'filename'。 我也更喜欢使用小写启动变量/方法,以便更轻松地完成代码完成菜单导航。

我猜骆驼案的问题也在这里,我认为应该用来区分多字的名字。

答案 4 :(得分:3)

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

答案 5 :(得分:3)

写“文件名”或“文件名”是可接受的英语。当您将其转换为编码时,可以大写“ n”或不大写“ n”(假设使用camelCase或PascalCase)。

顺便说一句,您确实在这个问题上犯了语法错误-具有讽刺意味的是,在您表达希望没有语法错误的那句话中。您说:“我只是希望这篇文章中没有语法错误!”但是“错误”是复数形式,因此“有”的“是”表示主谓词上的分歧。

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

答案 6 :(得分:2)

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

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

var filename = ......

如果是两个单词那就是

var fileName = ....

答案 7 :(得分:1)

这里没有真正的对错。

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

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

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

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

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

答案 8 :(得分:0)

如果您正在编写c / c ++,那么很有可能会使用人们可以阅读的名称;即文件名是好的,因此是yet_another_file_name(假设您没有将文件名视为正确的英语单词 - 我通常会这样做。)

请参阅google coding standards