【问题标题】:CodeMaid vs Stylecop usings organisationCodeMaid vs Stylecop 使用组织
【发布时间】:2015-05-14 19:56:05
【问题描述】:

我使用 StyleCop 已经有一段时间了(我已经习惯了)。我的朋友推荐我也试试 CodeMaid。我注意到的第一件事是使用组织的不同。

Stylecop 按字母顺序排列使用,其中首先列出系统使用,下面列出非系统使用。

CodeMaid 也按字母顺序排序 usings,但它不会先排序 System usings。它只按字母顺序排序使用s

我遇到的另一件事是 CodeMaid 允许您在命名空间之外使用 using(据我所知,最好将所有 using 放在命名空间内)

我想问一下正确的使用顺序是什么,最终为什么?

【问题讨论】:

  • 坦率地说,我相信 StyleCop - MS 品牌/工具。它是在内部开发的,然后在几年前公开,因此建议自然而然地内置在 StyleCop 中。我想这取决于您的需求,而不是个人需求,StyleCop。
  • 指令的使用顺序无关紧要; using 指令的位置无关紧要。事实上,如果你在 MSDN 中研究了一下,它们被称为 using 指令是有原因的;它们向编译器提供信息,但不显示在 IL 中。

标签: c# stylecop


【解决方案1】:

免责声明:我编写了 CodeMaid。

  1. 对于首先使用 System using 语句,Microsoft 更改了 Visual Studio 2012 中的默认首选项,因为他们开始引入“Windows”。组件。更多详情:Using Directives Sorted in Wrong Order

您可以在工具->选项->文本编辑器->C#->高级->“排序使用时首先放置'系统'指令”轻松将其更改回VS2010默认值。 CodeMaid 尊重 Visual Studio 定义的首选项,默认不将系统指令放在首位。

  1. 对于命名空间内的 using 语句,我们的待办事项是支持 https://trello.com/c/CLRxsIyc 。 StyleCop 可能将其声明为标准,但如果您查看 MSDN 示例、Visual Studio 模板等,您会发现命名空间之外的 using 语句更为传统。关于这个问题有很多争论,我们的目标是支持这两种方法。

希望对您有所帮助。 :)

【讨论】:

  • 很高兴听到史蒂夫这两个消息。 +1
【解决方案2】:

没有“正确”的顺序,只有约定。 Stylecop 的 SA1210 rule 明确指出 System 命名空间放在首位:

如果 using 指令未按命名空间的字母顺序排序,则会违反此规则。按字母顺序对 using 指令进行排序使代码更清晰、更易于阅读,并且有助于更轻松地识别代码正在使用的命名空间。 系统命名空间是此规则的一个例外,它始终位于所有其他命名空间之前。有关详细信息,请参阅 SA1208。

Rule SA1208 声明System 命名空间必须在其他命名空间之前,原因是:

将所有 System using 指令放在 using 指令的顶部可以使代码更清晰、更易于阅读,并有助于更容易识别代码正在使用的命名空间。

Stylecop 的规则是约定俗成的,Codemaid 选择了稍微不同的约定。选择您喜欢的,然后继续做出更重要的决定。

请参阅this question,了解在命名空间之外拥有using 语句。

【讨论】:

  • 感谢您的链接,我知道并在几年前阅读了它,因此我提到了“据我所知”部分
猜你喜欢
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多