ReSharper可以根据您的偏好设置重新格式化随意选定的代码块,当前文件、目录中所有文件甚至整个项目或解决方案内的所有代码。 ReSharper为所有支持的语言提供独特的格式化选项。 重新格式化会影响大括号布局、空行、自动换行和换行、不同上下文中的空格、缩进、对齐多个结构和其他许多选项,您可以在ReSharper Options对话框中微调它们。
在想要重新格式化的选定代码范围内按Alt+Enter,可以根据上下文配置格式化规则。 在操作列表中选择Format Selection | Configure,以查看会影响代码的所有格式化规则。
您也可以使用代码清理来重新设置代码格式。
使用C# 3.0中引入的隐式类型局部变量(var
关键字)已十分流行,因为结果代码的可读性已改进。 默认情况下,ReSharper也建议使用var
关键字。
不过,您可以更改偏好设置,选择使用显式类型。
您也可以使用代码清理来强制执行隐式/显式类型的偏好设置。
自动实现的属性(也称为自动属性)允许以一种简单的方式声明不包含其他逻辑的类型属性。 默认情况下,ReSharper建议使用自动属性(如果可能),不过可以配置此行为。
您可以通过快速修复或代码清理将包含支持字段的属性转换为自动属性。
各种类型和类型成员的C#修饰符可以按任何顺序编写。 不过,最好在您的代码中以相似的方法排列它们,这样可以改进代码可读性。 ReSharper可以帮助您定义所需顺序,查找未排序的修饰符,并自动对它们排序。
另外,ReSharper还会帮助您强制执行明确地使用或不使用private
和internal
修饰符的偏好设置。
通常,为一些字段使用readonly
修饰符是比较合理的,它们是在声明或构造函数中赋值且仅包含读取用法的字段。 默认情况下,如果满足上面的条件,ReSharper会建议您将字段设为只读。
修饰符的所有偏好设置均可配置,您可以使用快速修复和代码清理应用它们。
ReSharper让您可以为不同语言和符号定义自定义命名样式,符号包括类型、命名空间、接口、参数、方法属性与事件、静态与实例字段,等等。
对于每种符号,您都可以配置五个大小写选项、前缀与后缀、不同访问权限的变体、要保留的缩写和其他选项。
所有的命名样式冲突都会在编辑器中高亮显示,而且可以轻松修复。
此外,您还可以使用 Find Code Issues 功能,在 Inspection Results 窗口中浏览(和快速修复)整个解决方案(或者更小的范围)中的所有命名样式冲突。
为了使代码更易读,您可以移除冗余using指令和/或缩短C#和VB.NET代码文件中的限定引用。 而且,有不同的方法导入命名空间 — 您可以添加using
/import
指令或使用完全限定的类型名称,您可以将指令放置于文件顶部或命名空间内,等等。
使用 ReSharper,您可以直接在编辑器中快速检测和移除冗余导入,或者使用代码清理,这样还可以帮助您按照字母顺序对所需的指令排序并将它们包围在一个区域内。
对于内置C#类型,C#类型关键字和.NET框架(CLR)类型名称可以互换。 如果您更愿意为内置类型名称使用一个或另一个样式,ReSharper可以帮助您维护偏好设置。
偏好设置可以配置,您也可以使用代码清理强制执行。
在C#中,您可以使用this
关键字限定实例成员,使用类型名称或基类型名称限定静态成员。 这些限定符会帮助您区分被局部变量或方法参数隐藏的成员。 在所有其他情况下,这些修饰符均为可选,您可以自行决定是否使用它们。 默认情况下,ReSharper会将所有可选成员限定符视为冗余,并建议移除它们。
如果您想要使用可选限定符,可以配置相应的代码样式设置。 例如,您可能想要使用声明静态方法处的类型来限定静态方法。
在许多情况下,可以不在表达式中使用括号。 有时,括号可以帮助您阐明运算优先级(例如 if ((a & b) | c)
);不过,它们有时不会有任何好处,只会增加无用代码(例如 var d = a + (b + c);
)。 ReSharper 会帮助您定义哪里的可选括号对您有帮助,然后清理冗余括号,或者为不明显的运算优先级自动添加阐明括号。
在C#代码中,ReSharper可以自动重新排列代码中的文件和成员。 会根据成员的种类和访问修饰符将它们排序、分组和包装到指定区域,等等。 ReSharper提供了两种默认布局模式(一组重新排列规则)和智能可视化编辑器。
本页面提供的所有键盘快捷键都在 ReSharper 的默认“Visual Studio”按键映射中。 有关 ReSharper 两种按键映射的详细信息,请参阅 ReSharper 文档。