代码语法样式:命名空间导入
在每个源代码文件中,您应该拥有正确的命名空间导入集(using C# 中的指令)。 如果缺少导入,您的代码将无法编译;如果存在未使用的导入,随着时间的推移,它们可能会使代码维护变得困难。 此外,还有不同的命名空间导入方法,例如,您可以添加 using 指令或使用完全限定的类型名称,您可以将 using 指令放在文件顶部或命名空间内部,等等。
ReSharper 提供了许多功能,帮助您根据偏好设置控制并自动更新命名空间导入的各个方面。
配置命名空间导入偏好设置
您的命名空间导入偏好设置通过 基于层的设置 机制保存。 除此之外,该机制还允许您为不同的解决方案维护不同的偏好,并将这些偏好保存在 VCS 中,自动与团队成员共享。
从主菜单中选择 或按 Alt+R O ,然后在左侧选择 。
在此选项页面中,您可以指定永远不应移除的命名空间和/或应始终导入的命名空间。
从主菜单中选择 或按 Alt+R O ,然后在左侧选择 。
使用 引用限定和 'using' 指令 组中的偏好设置微调命名空间导入样式:
首选完全限定引用 — 如果您更喜欢对导入的类型使用完全限定名称而不是命名空间导入指令,请选中此复选框。
将 'using' 指令添加到最深的作用域——如果选中此复选框,命名空间导入指令将添加到使用导入类型的命名空间内;否则,导入指令将添加到文件顶部。
对 'using' 指令排序时先放置 'System.*' 和 'Windows.*' 命名空间——如果选中此复选框,类似于
using System.Linq;的 'using' 指令将在排序时放置在其他 'using' 指令上方。 否则,这些指令将与其他指令按字母顺序排序。首选在嵌套作用域内使用完全限定名称——如果选中此复选框,在嵌套类型和命名空间中更倾向于使用导入类型的完全限定名称。
允许使用别名指令 — 选中此复选框允许在命名空间导入指令中使用别名,而不是完全限定的命名空间名称。
允许使用 'global::' 前缀——如果选中此复选框,
global::前缀不会被移除,如global::System.String中所示。 有关更多信息,请参阅 :: 运算符 - 命名空间别名运算符。
单击 选项 对话框中的 保存 应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
导入缺失的命名空间
ReSharper 帮助您检测缺少命名空间导入的符号并自动添加适当的导入。 未解析的符号会立即在编辑器中被 高亮显示 ,并建议相应的修复:

如果文件中有多个未解析的符号,修复将为所有符号添加导入。 导入是根据配置的 命名空间导入偏好设置 添加的。 有关更多信息,请参阅 导入缺失的命名空间。
此功能在以下语言和技术中 受支持:
此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。
移除多余的命名空间导入并优化现有的导入
如果您移除了命名空间符号的使用,任何导入的命名空间都会在代码中变得多余。 没有 ReSharper,您必须滚动到每个文件的顶部,找到未使用的命名空间导入指令并将其移除。 ReSharper 通过允许您自动从文件、项目或解决方案中移除未使用的命名空间导入指令,使工作变得更加轻松。 除了移除多余的命名空间导入,ReSharper 还可以根据您的 命名空间导入偏好设置 以多种方式优化它们。
所有多余的命名空间导入都会在编辑器中被 高亮显示 ,并建议相应的 快速修复 ,包括 范围内修复:

通过应用建议的修复,您可以立即在所需范围内移除多余的命名空间。
另一种批量移除多余命名空间导入的选项是使用 代码清理。 您可以使用 内置:完全清理配置文件运行 代码清理 ,或者创建并运行 仅针对特定任务的自定义配置文件 ,如下所述。
与快速修复不同,代码清理不仅移除未使用的导入,还根据您的偏好设置优化现有的导入。 例如,使用代码清理,您可以通过添加相应的命名空间导入,将完全限定的类型名称替换为简单类型名称。
使用代码清理优化命名空间导入
从主菜单中选择 或按 Alt+R O 。
转到代码清理配置文件设置页面: 。
按照 创建新的自定义清理配置文件 部分的描述创建一个新配置文件。 在新配置文件的 选定的配置文件设置 中:
选择 优化 'using' 指令。
可选地,为了将未使用的
using指令包含在一个区域中,选择 在区域内包含 'using' 指令 并在 区域名称 字段中指定区域名称。
单击 选项 对话框中的 保存 应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
选择您希望优化命名空间导入的范围:
将光标放置在文件中的任意位置以优化文件的命名空间导入。
在 解决方案资源管理器 中选择一个或多个项目,以优化这些节点及其子项下文件的命名空间导入。
执行以下操作之一:
按 Control+Alt+F 或从主菜单中选择 。
右键单击文本编辑器中的任意位置或右键单击选定内容,然后在上下文菜单中选择 清理代码。
在打开的 代码清理 对话框中,选择新创建的配置文件。
单击 运行。 ReSharper 将在选定范围内优化命名空间导入。
如果您希望在不打开 代码清理 对话框选择配置文件的情况下优化命名空间导入,可以将创建的配置文件绑定到 静默清理 ,并通过按 Control+Shift+Alt+F 运行它。 您还可以创建一个 自定义清理配置文件 ,将优化命名空间导入与其他代码样式任务结合起来。
要将命名空间导入偏好设置与所有其他 格式化和 语法样式规则一起应用于选定的代码块,请 Alt+Enter 并选择 。
您可以在每次保存文件更改时优化命名空间导入,以确保您的编辑始终符合代码样式。
在保存更改时自动优化命名空间导入
从主菜单中选择 或按 Alt+R O 。
转到代码清理配置文件设置页面: 。
选择并单击 设为默认 (默认配置文件也用于 静默清理)。
转到 选项页面并选择 保存文件时自动运行清理。
可选地,您可以通过文件掩码限制自动清理到特定文件。
您还可以选择 仅更改的文件部分 ,以确保清理仅应用于受更改影响的代码,而文件中的其余代码不会被修改。
如果您选择仅清理文件的更改部分,可以通过以下选项微调此行为:
如果无法执行部分清理,则执行完全清理 — 根据此选项,ReSharper 将清理整个文件,或者如果无法将清理限制为文件的修改部分,则跳过该文件。
允许在保存共享文件时进行清理 — 使用此选项启用或禁用对多次包含在解决方案中的文件(例如共享项目中的文件)的部分清理。
在对话框中单击 保存 以应用修改,并让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
下次您完成编辑并保存文件( Ctrl+S )或所有文件( Ctrl+Shift+S )时,ReSharper 将使用选定的配置文件清理受影响的文件。 如果未选择 默认清理配置文件 ,ReSharper 将提示您选择一个配置文件。