【问题标题】:Why "Analyze designer files" is the default for StyleCop?为什么“分析设计器文件”是 StyleCop 的默认设置?
【发布时间】:2012-03-25 23:20:00
【问题描述】:

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

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

这些文件不应该被单独留下吗?为什么我们应该尝试让它们符合 StyleCop?

【问题讨论】:

  • 这是微软的默认设置。不是你的,你无能为力。
  • @HansPassant 好吧,我可以更改它,它将存储在Settings.StyleCop 文件中,如果您是这个意思,任何签出代码的人都可以在项目范围内使用该文件。但我想知道它背后是否有一些原因(实际上*.designer.cs 文件默认情况下甚至不符合 StyleCop)。这似乎很奇怪,因为 StyleCop 开发人员肯定知道如果您将其保留为默认值会发生什么(网上唯一的讨论似乎是关于如何更改该默认值,而不是为什么它首先存在)。

标签: c# coding-style code-analysis windows-forms-designer stylecop


【解决方案1】:

可能希望将生成的代码与手动编写的代码保持相同的标准。诚然,对于 StyleCop 所涵盖的纯“代码样式”问题,这往往不如 FxCop 等工具涵盖的“正确性”问题那么重要,但仍然有令人信服的理由来检查工具生成的代码,即使是样式问题。例如:

  1. 如果生成目标代码的工具是自己编写的工具,那么将其与手动编写的代码保持相同的标准并不少见。毕竟,这是一种完全控制生成代码的内容和样式的情况。

  2. 从实际角度来看,可以在生成代码后随时删除或禁用该工具,在这种情况下,最终需要手动维护代码。如果强制执行样式规则以增强可读性和可维护性,则可能不希望生成的代码过多地偏离编码标准。

【讨论】:

  • 这听起来很可能,即检查我们自己制作的工具生成的代码样式。但尽管看起来很奇怪,默认设置是“检查 .designer.cs 文件,但不检查 .generated.cs 文件”(因此它明确默认不检查您的工具生成的代码的样式,而是检查 Windows 窗体设计器代码)。
【解决方案2】:

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

在这些高度分离以及使用详细和清晰名称的能力的时代,它可能只是默认情况下的谨慎意识。

但我同意,如果您确定它们始终是自动生成的,那么您不应该尝试清理它们。

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

【讨论】:

  • 嗯,后缀必须是.Designer.cs,因此例如WebDesigner.cs 不会被视为设计器文件。我真的怀疑人们会命名像MyClass.Designer.cs 这样的文件。此外,如果您碰巧有一个名为 Designer.cs 的文件,它不会有完整的后缀,所以我很确定它也不会被忽略。不过,我有点好奇你如何清理一个 12 MB 的文件。
  • 一个特别的事情是删除我不使用的 CRM 功能的类,尽管这是一件相当罕见的事情;最重要的是实现部分类,这样我就可以将我需要的功能拆分为多个文件,这些文件单独不会阻塞编译器/resharper。
猜你喜欢
  • 2016-04-25
  • 2022-11-09
  • 2021-10-23
  • 2022-07-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-26
相关资源
最近更新 更多