代码样式

ReSharper可以帮助您确保基本代码中的代码样式一致。 默认的样式设置基于广泛接受的惯例和最佳实践;不过如果您的个人偏好或公司标准不同,您也可以全局或按解决方案配置它们,并在您的团队中共享设置

ReSharper 在代码补全中建议符号名称、生成新成员、应用代码模板和执行重构时,也会考虑您的代码样式偏好设置。

可以通过代码检查检测出代码样式的冲突,并使用快速修复或代码清理来修复它们。

应用代码清理以强制执行代码样式设置

代码清理

代码清理是一个功能,可以帮助您立即清除一个或多个文件、项目或整个解决方案中的代码样式冲突,只需一个快捷键:Ctrl+E、C

两个默认配置文件 - Full Cleanup(应用所有代码样式设置,除了命名样式)和 Reformat Code(仅应用您的格式化规则)- 可以由您的自定义特定任务的配置文件补全。

重新格式化当前选定的代码

代码格式化

ReSharper可以根据您的偏好设置重新格式化随意选定的代码块,当前文件、目录中所有文件甚至整个项目或解决方案内的所有代码。 ReSharper为所有支持的语言提供独特的格式化选项。 重新格式化会影响大括号布局、空行、自动换行和换行、不同上下文中的空格、缩进、对齐多个结构和其他许多选项,您可以在ReSharper Options对话框中微调它们。

在想要重新格式化的选定代码范围内按Alt+Enter,可以根据上下文配置格式化规则。 在操作列表中选择Format Selection | Configure,以查看会影响代码的所有格式化规则。

您也可以使用代码清理来重新格式化代码。

替换包含'var'关键字的显式类型

隐式/显式类型

使用C# 3.0中引入的隐式类型局部变量(var关键字)已十分流行,因为结果代码的可读性已改进。 默认情况下,ReSharper也建议使用var关键字。

不过,您可以更改偏好设置,选择使用显式类型。

您也可以使用代码清理来强制执行隐式/显式类型的偏好设置。

使用自动属性快速修复

使用自动属性

自动实现的属性(也称为自动属性)允许以一种简单的方式声明不包含其他逻辑的类型属性。 默认情况下,ReSharper建议使用自动属性(如果可能),不过可以配置此行为。

您可以通过快速修复或代码清理将包含支持字段的属性转换为自动属性。

快速修复以使字段只读

C#修饰符的样式

各种类型和类型成员的C#修饰符可以按任何顺序编写。 不过,最好在您的代码中以相似的方法排列它们,这样可以改进代码可读性。 ReSharper可以帮助您定义所需顺序,查找未排序的修饰符,并自动对它们排序。

另外,ReSharper还会帮助您强制执行明确地使用或不使用privateinternal修饰符的偏好设置。

通常,为一些字段使用readonly修饰符是比较合理的,它们是在声明或构造函数中赋值且仅包含读取用法的字段。 默认情况下,如果满足上面的条件,ReSharper会建议您将字段设为只读。

修饰符的所有偏好设置均可配置,您可以使用快速修复和代码清理应用它们。

移除所需范围内的冗余代码

移除代码冗余(仅限C#)

ReSharper 能够为冗余代码提供许多代码检查

可以使用范围内修复或代码清理来清理大量的冗余,而无需用户交互。

移除代码冗余时,ReSharper会考虑所有其他的代码样式设置。 如果特定代码结构由代码样式设置定义为非冗余,它们将被完整保留。

扩展的命名样式配置

命名样式

ReSharper让您可以为不同语言和符号定义自定义命名样式,符号包括类型、命名空间、接口、参数、方法属性与事件、静态与实例字段,等等。

对于每种符号,您都可以配置五个大小写选项、前缀与后缀、不同访问权限的变体、要保留的缩写和其他选项。

所有的命名样式冲突都会在编辑器中高亮显示,而且可以轻松修复。

此外,您还可以使用 Find Code Issues 功能,在 Inspection Results 窗口中浏览(和快速修复)整个解决方案(或者更小的范围)中的所有命名样式冲突。

设置样式以优化“using”指令

命名空间导入样式

为了使代码更易读,您可以移除冗余using指令和/或缩短C#和VB.NET代码文件中的限定引用。 而且,有不同的方法导入命名空间 — 您可以添加using/import指令或使用完全限定的类型名称,您可以将指令放置于文件顶部或命名空间内,等等。

使用 ReSharper,您可以直接在编辑器中快速检测和移除冗余导入,或者使用代码清理,这样还可以帮助您按照字母顺序对所需的指令排序并将它们包围在一个区域内。

使用C#内置类型关键字,而不是CLR类型名称

内置C#类型的引用样式

对于内置C#类型,C#类型关键字和.NET框架(CLR)类型名称可以互换。 如果您更愿意为内置类型名称使用一个或另一个样式,ReSharper可以帮助您维护偏好设置。

偏好设置可以配置,您也可以使用代码清理强制执行。

自动分隔多个C#特性

C#特性的样式

C#中的多个特性能以不同的方式编写:您可以将几个特性放置于同一个括号中,或者为不同特性使用几个部分。 ReSharper允许您为多个特性指定样式并在所需范围内强制执行此样式:

ReSharper 还为特性提供了多个格式化规则,并允许利用代码清理以批处理模式为特性应用所有样式偏好设置。

移除冗余成员限定符

可选成员限定符的样式

在C#中,您可以使用this关键字限定实例成员,使用类型名称或基类型名称限定静态成员。 这些限定符会帮助您区分被局部变量或方法参数隐藏的成员。 在所有其他情况下,这些修饰符均为可选,您可以自行决定是否使用它们。 默认情况下,ReSharper会将所有可选成员限定符视为冗余,并建议移除它们。

如果您想要使用可选限定符,可以配置相应的代码样式设置。 例如,您可能想要使用声明静态方法处的类型来限定静态方法。

移除冗余括号

可选括号的样式

在许多情况下,可以不在表达式中使用括号。 有时,括号可以帮助您阐明运算优先级(例如 if ((a & b) | c));不过,它们有时不会有任何好处,只会增加无用代码(例如 var d = a + (b + c);)。 ReSharper 会帮助您定义哪里的可选括号对您有帮助,然后清理冗余括号,或者为不明显的运算优先级自动添加阐明括号。

类型成员布局

文件和类型布局(仅限C#)

在C#代码中,ReSharper可以自动重新排列代码中的文件和成员。 会根据成员的种类和访问修饰符 将它们排序、分组和包围到指定区域,等等。 ReSharper提供了两种默认布局模式(一组重新排列规则)和智能可视化编辑器。

快捷键注释

本页面提供的所有键盘快捷键都在 ReSharper 的默认“Visual Studio”键盘映射中。 有关 ReSharper 两种键盘映射的详细信息,请参阅 ReSharper 文档