C# 为什么;“分析设计器文件”;是StyleCop的默认值吗?

C# 为什么;“分析设计器文件”;是StyleCop的默认值吗?,c#,coding-style,code-analysis,windows-forms-designer,stylecop,C#,Coding Style,Code Analysis,Windows Forms Designer,Stylecop,StyleCop(4.7.14.0)默认选中了“分析设计器文件”设置,我想知道是否有任何理由可以证明对设计器生成的文件进行代码样式检查是正确的 我知道我可以(以及如何)禁用它来检查这些文件(我正在考虑这样做),但问题是,为什么默认情况下会分析这些文件 这些文件不是要单独保存吗?我们为什么要尝试使它们符合StyleCop呢?我能想到的主要原因是,不能绝对保证名称中带有“designer”的文件只会自动生成 在这种高度分离、能够使用冗长而清晰的名称的时代,默认情况下,这可能只是一种谨慎的感觉 但我同

StyleCop(4.7.14.0)默认选中了“分析设计器文件”设置,我想知道是否有任何理由可以证明对设计器生成的文件进行代码样式检查是正确的

我知道我可以(以及如何)禁用它来检查这些文件(我正在考虑这样做),但问题是,为什么默认情况下会分析这些文件


这些文件不是要单独保存吗?我们为什么要尝试使它们符合StyleCop呢?

我能想到的主要原因是,不能绝对保证名称中带有“designer”的文件只会自动生成

在这种高度分离、能够使用冗长而清晰的名称的时代,默认情况下,这可能只是一种谨慎的感觉

但我同意,如果你确定它们总是自动生成的,那么你就不应该尝试清理它们


OTOH,我的Dynamics CRM服务器生成了一个12mb的XRM参考文件,所以我倾向于修剪这个文件

最好将生成的代码保持为与手动编写的代码相同的标准。诚然,与FxCop等工具所涵盖的“正确性”问题相比,这对于StyleCop等纯“代码风格”问题的重要性要小得多,但即使是对于风格问题,也有令人信服的理由检查工具生成的代码。e、 g:

  • 如果生成目标代码的工具是作者编写的工具,那么将其保持为与手动编写的代码相同的标准并不罕见。毕竟,在这种情况下,您确实可以完全控制生成代码的内容和样式

  • 从实用的角度来看,该工具可以在生成代码后的任何时候删除或禁用,在这种情况下,最终需要手动维护代码。如果强制执行样式规则以增强可读性和可维护性,那么允许生成的代码与编码标准偏离太多可能是不可取的


  • 嗯,后缀必须是
    .Designer.cs
    ,因此例如
    WebDesigner.cs
    将不会被视为设计器文件。我真的怀疑人们会给像
    MyClass.Designer.cs
    这样的文件命名。另外,如果您碰巧有一个名为just
    Designer.cs
    的文件,它不会有完整的后缀,因此我很确定它也不会被忽略。然而,我有点好奇如何清理一个12 MB的文件;最重要的是实现分部类,这样我就可以将需要的功能拆分为多个文件,而这些文件不会单独阻塞编译器/resharper。这是Microsoft的默认设置。不是你的,你对此无能为力。@HansPassant好吧,我可以更改它,它将存储在
    Settings.StyleCop
    文件中,如果你是这个意思的话,它将在整个项目范围内被签出代码的任何人使用。但是我想知道它背后是否有某种原因(实际上,
    *.designer.cs
    文件在默认情况下甚至都不符合StyleCop)。这似乎很奇怪,因为StyleCop开发人员肯定知道如果您将其保留在默认状态下会发生什么(网上唯一的讨论似乎是关于如何更改默认状态,而不是为什么会出现默认状态)。这听起来很可能是一种情况,即检查由我们自己制作的工具生成的代码样式。但是,看起来很奇怪,默认设置是“检查
    .designer.cs
    文件,但不检查
    .generated.cs
    文件”(因此它明确默认不检查工具生成的代码样式,而是检查Windows窗体设计器代码)。