50

Visual Studio 可以选择在对系统指令进行排序时将它们放在顶部。

在此处输入图像描述

如果未选中此设置,则通过右键单击语句并使用Organize Usings功能对 using 语句进行排序,将系统命名空间按字母顺序排列在所有其他命名空间导入中。

但是,ReSharper 似乎不支持此设置,它自己的命名空间导入选项页面上也没有任何类似的设置。它总是表现得好像您希望系统名称空间位于顶部。当您在底部已经有一些并且您让 ReSharper 建议要导入的命名空间时,这尤其令人讨厌,然后您最终在列表的两端都有一些。

有没有办法解决这个问题?或者这只是 ReSharper 中的一个错误/疏忽?

4

6 回答 6

15

我正在使用 ReSharper 7,至少对我而言,ReSharper 从 Visual Studio 选项中获取了“系统指令排序选项”。

有时,当 VS 和 ReSharper 设置混乱时,从 Tool->Import and Export Settings->Reset all settings 重置 Visual Studio 设置会有所帮助。

于 2012-10-11T07:34:25.950 回答
8

我在 ReSharper 8 下再次对此进行了测试,看看它是否已修复,我注意到一些有趣的事情:

  • 如果我现有的命名空间首先已经有System项目,那么 ReSharper 将在它们下面插入新的命名空间。

  • 如果我现有的命名空间在项目之前至少有一项System,那么 ReSharper 将按字母顺序插入新的命名空间。

  • 无论Visual Studio 的设置如何, ReSharper 的行为都是相同的。它只考虑现有的命名空间 -而不是Visual Studio 的设置。

因此,如果我有以下内容:

using A;
using System;
using Z;

然后,如果我使用命名空间中的一个类B并按 alt-enter 让 ReSharper 添加命名空间,它将最终变为:

using A;
using B;
using System;
using Z;

但是,如果我只有这个:

using System;
using Z;

我做同样的事情,然后我会得到:

using System;
using B;
using Z;

VS的设置是什么并不重要。

我认为这也是 ReSharper 7 中发生的事情,我只是没有注意到。

于 2013-09-01T18:37:56.207 回答
3

如果我剪切了所有的使用,然后我将它们粘贴到它们所在的位置,然后进行排序,它似乎尊重该选项:

Place 'System' directives first when sorting usings

我正在 Visual Studio Community 2017 和 Resharper 2018.3.4 上对此进行测试。

于 2019-03-12T20:20:02.903 回答
0

截屏

ReSharper| Options| Code Editing| C#| Syntax Style| Reference Qualification and 'using' Directives|Place 'System.*' and 'Windows.*' namespaces first when sorting 'using' directives

取消选择它。

另请参阅此 ReSharper 帮助文档:代码语法样式:命名空间导入 - 配置命名空间导入首选项

于 2020-10-10T06:12:56.313 回答
0

版本:Resharper 2021.2 和 VS Studio 2019 Professional

在 Resharper 上默认检查与该问题有关的设置: 在此处输入图像描述

但是,仅此一项并没有将“系统”使用放在首位。

但是在检查 VS Studio 设置后,Ctrl+R,Ctrl+ G按预期工作: 在此处输入图像描述

于 2021-10-27T17:17:10.933 回答
-1

对于 ReSharper 2019.2.3

ReSharper -> Options -> Code Editing -> C# -> 
Code Style -> Reference Qualification and 'using' Directives 

然后取消选中复选框

 Place 'System.*' and 'Windows.*' namespaces first when sorting 'using' directives 
于 2019-11-12T16:19:29.597 回答