当您需要对代码进行小幅更改时,ReSharper的上下文操作可以帮助您避免许多输入操作。 更改访问修饰符、生成检查null的代码、将foreach
转换为for
以及反向转换 — 所有操作只需按几次键即可完成。 在C#、VB.NET、XAML、ASP.NET 和其他支持的语言中可以使用超过450种上下文操作。 在您想要更改的代码元素上按Alt+Enter,然后选择要应用的上下文操作。
只要上下文操作可用于当前脱字符号位置,ReSharper 就会在脱字符号左侧显示锤头图标 。 如果有多个可用的上下文功能(它们可能是上下文操作和快速修复的组合),将会显示优先级最高的操作的图标。 点击操作指示器或按Alt+Enter可以查看所有可用操作。
相似的上下文操作(例如,用于不同访问修饰符的操作)通常会组织到一起。 在这种情况下,使用向右箭头展开组可以选择所需的操作。
一些上下文操作(Remove #regions、Specify enum member values和Add name to argument,等等)可以在更大的范围内自动应用:在当前方法、类、文件、项目中或在整个解决方案内。 您可以点击右侧的小箭头或按键盘上的向右箭头键,选择在何处应用转换。
使用ReSharper,您无需输入任何内容即可检查参数是否为null — 只需按Alt+Enter,ReSharper会为您生成完整的null检查例程。
或者,如果您在项目中使用 JetBrains 代码注释,参数将使用 [NotNull]
特性标记,这样一来,ReSharper 会在您为此参数调用包含 null 的方法时发出警告。
在此示例中,您可以看到ReSharper的上下文操作如何帮助您快速地将LINQ查询转换为foreach
循环和lambda表达式。
这是 ReSharper 中将循环转换为 LINQ 语句的著名快速修复的反向操作。
一些上下文操作更像重构 - 它们会自动处理复杂的代码转换,同时保留逻辑。
在此示例中,ReSharper会帮助您将带有yield return
语句的迭代器转换为可以创建、填充并返回集合的代码。
如果您需要为现有的局部变量初始化添加条件,此上下文操作会帮助您快速地分离初始化。 即使变量为隐式类型,ReSharper也会自动计算正确的类型并在声明中使用它。
使用此上下文操作,您可以快速交换if
语句的分支。 无论多么复杂,ReSharper都会确保条件适当地反转,这样逻辑就可以保持不变。
无论为委托(匿名方法或lambda表达式)使用哪种语法,ReSharper的上下文操作都可以让您按几次键就能更改语法,无需重新手动编写代码。
此上下文操作让您能够创建为选定参数使用默认值的方法重载,而且无需任何手动输入。
此操作也支持在C#和TypeScript中使用。
In XML-like languages, ReSharper's context actions help you streamline routine editing procedures of expanding/collapsing empty tags, and converting attributes to tags and back. 可以在XML、XAML、ASP.NET、生成脚本、HTML和Resx文件中使用这些操作。