我尝试在命名*中语法正确。我一直使用filename
代替fileName
。 java约定似乎也使用了这个,但FxCop更喜欢fileName
。
关于它有一个discussion on WikiPedia。我读的越多,我就越觉得我是对的(这很常见!:))。有没有人有明确的答案或者这仅仅是主观的?
*我只希望这篇文章中没有语法错误!
答案 0 :(得分:34)
Lower camel case建议用于字段和参数。
示例1 :
fileName // for fields, parameters, etc.
FileName // for properties, class names, etc.
通常使用fileName
而非filename
;您可以通过阅读Microsoft创建的开源资料的源代码来验证,例如Enterprise Library。
<强>原因强>:
示例2 :
fileName, fileSize... // instead of filename AND filesize
另见:
对于完整的命名约定规则,我建议您查看本书:
答案 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(假设您没有将文件名视为正确的英语单词 - 我通常会这样做。)