CodeMaid与Stylecop使用组织

时间:2015-03-12 15:14:41

标签: c# stylecop

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

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

CodeMaid也按字母顺序命令使用,但它不首先命令系统使用。它只按字母顺序排序

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

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

2 个答案:

答案 0 :(得分:51)

免责声明:我写过CodeMaid。

  1. 对于System using语句首先,Microsoft在Visual Studio 2012中更改了默认首选项,因为他们开始介绍" Windows。"组件。更多详情:Using Directives Sorted in Wrong Order
  2. 您可以轻松地将其更改回VS2010默认值为工具 - >选项 - >文本编辑器 - > C# - >高级 - >"放置'系统'首先使用"进行排序时指令。 CodeMaid尊重Visual Studio定义的首选项,默认情况下不首先放置System指令。

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

答案 1 :(得分:6)

没有“正确”的排序,只是惯例。 Stylecop的SA1210 rule明确指出System名称空间是第一个:

  

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

Rule SA1208声明System名称空间必须在其他名称空间之前,并且推理是:

  

在using指令的顶部放置所有使用指令的系统可以使代码更清晰,更容易阅读,并且可以帮助更容易地识别代码使用的命名空间。

Stylecop的规则是约定,Codemaid选择了稍微不同的约定。选择你喜欢的那个并继续做出更重要的决定。

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