.net 参数命名:文件名还是文件名?

.net 参数命名:文件名还是文件名?,.net,naming-conventions,naming,fxcop,.net,Naming Conventions,Naming,Fxcop,我尽量在命名上做到语法正确*。我总是使用filename而不是filename。java约定似乎也使用了这一点,但FxCop更喜欢fileName 这件事有点奇怪。我读得越多,我就越觉得自己是对的(这是很常见的!)。是否有人有明确的答案,或者这仅仅是主观的 *我只希望这篇文章没有语法错误 建议用于字段和参数 示例1: fileName // for fields, parameters, etc. FileName // for properties, class names, etc. fi

我尽量在命名上做到语法正确*。我总是使用
filename
而不是
filename
。java约定似乎也使用了这一点,但FxCop更喜欢
fileName

这件事有点奇怪。我读得越多,我就越觉得自己是对的(这是很常见的!)。是否有人有明确的答案,或者这仅仅是主观的

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

建议用于字段和参数

示例1

fileName // for fields, parameters, etc.
FileName // for properties, class names, etc.
fileName, fileSize... // instead of filename AND filesize
通常使用的是
文件名
,而不是
文件名
;您可以通过阅读由Microsoft创建的开源内容的源代码来验证这一点,例如

原因

fileName // for fields, parameters, etc.
FileName // for properties, class names, etc.
fileName, fileSize... // instead of filename AND filesize
  • 这背后的要点是,在这种情况下,名称更具可读性
  • 此外,当在同一方法(类..)中使用多个参数(字段、变量..)并使用相同前缀“file”时,这种方法增加了一致性,如下所示:
  • …还有一些其他原因,但它们更主观
  • 示例2

    fileName // for fields, parameters, etc.
    FileName // for properties, class names, etc.
    
    fileName, fileSize... // instead of filename AND filesize
    
    另见

    fileName // for fields, parameters, etc.
    FileName // for properties, class names, etc.
    
    fileName, fileSize... // instead of filename AND filesize
    
    • 在维基百科
    • 在MSDN
    要了解完整的命名约定规则,我建议查看本书:


    • (第二版)Krzysztof于2008年11月出版
      (就个人而言,我们并不使用本书中的100%推荐,但总的来说,有相当好的指南)

    而且就我而言,还可以在

    上查看一些资料

    这比
    
    阅读此


    'filename'
    假设这个词描述了一个像“奶牛”或“椅子”这样的单数物体
    'fileName'
    假定这是一个复杂的对象,存在一个名为file的对象,并且该对象描述了该文件的名称


    两种哲学方法,你自己选择。

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

    这里没有真正的对错

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

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

    在这个特殊的例子中,.net Reflector使用文件名显示了大量的.net代码,所以我个人会使用这种模式

    如果您在java世界中运行PMD和checkstyle,并且它们的API经常使用文件名,那么我会同意这一点


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

    我认为这里的答案跨越了两个问题

    • “文件名”与“文件名”(应该是 “名称”可以是一个单独的单词)

    • “文件名”与“文件名”(应首先 字符(小写)

    在大多数情况下,我更喜欢将这个词视为一个完整的词“filename”。 我还更喜欢用小写字母启动变量/方法,以便于代码完成菜单导航


    我猜这里也有驼峰格的问题,我认为应该用驼峰格来区分多个单词的名称。

    如果你在写c/c++的话,很有可能会使用人们能够真正阅读的名称;i、 文件名是好的,还有一个文件名也是好的(假设你不认为文件名是一个合适的英语单词——我通常是这样认为的)


    参见

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

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

    变量文件名=

    如果是两个词,那就是


    var fileName=..

    可以用英语写“fileName”或“file name”。当您将其转换为编码时,将“n”大写或不将“n”大写都可以(假设为camelCase或PascalCase)

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


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

    但可读性比可读性强吗?这有点接近要点。读是一个词,能是一个词,可读是一个词。那么假设每个单词的第一个字母都大写,我们应该怎么写呢?因此,如果你认为这个问题是可阅读的,那么我实际上认为你错了,但这不是OP所关心的。匿名投票人再次罢工。这是一个编程问题,没有一个明显的、一致的答案,为什么要投否决票?我会投赞成票,可能正是因为这样。没有真正的答案可以完全满足这个问题。@shoosh:讨论很好……没有明显答案的问题可以产生一些很好的输入。但是Java和.Net的命名约定是不同的,也许在其中添加.Net标记是合适的。@Koistya-你没有抓住要点,海报询问的是“文件名”(1个单词)是否比“文件名”(2个单词)好,而不是是否使用驼峰格。@Dan,I