ReSharper 2025.2 Help

补全语句

此命令会插入必要的语法元素(括号、大括号、分号等),并将光标定位到可以开始输入下一条语句的位置。

完成当前语句

  1. 输入语句的核心部分(请参见下面的场景示例)。

  2. Control+Shift+Enter 或从主菜单中选择 ReSharper | 编辑| 完成语句。 或者,您可以按 Control+Shift+A ,在弹出窗口中开始输入命令名称,然后在那里选择它。

此命令在许多场景中都很有用,包括自动关闭括号、添加分号、完成 ifwhilefor 语句等。

例如,每当您声明一个新方法时,在指定方法参数后,完成语句功能会派上用场:

public void Foo(string input

此时,要开始编写方法体,您通常需要:

  • 插入缺失的括号。

  • 输入

  • 插入一个开括号。

  • 再次按 输入

使用 ReSharper,您只需按 Control+Shift+Enter ,它会自动插入一个闭括号以及两个大括号,并将光标放置在可以继续编写方法体的位置:

public void Foo(string input) { // the caret is here }

以类似的方式,完成语句功能适用于以下语言结构:

  • 类型和类型成员 :类、接口、结构、枚举、委托、字段、事件和方法声明。

  • 语句ifwhiledoswitchusinglockcontinuebreakreturn 语句; casedefault 子句;将单行语句转换为块语句。

  • 表达式 :调用、元素访问、字符串/字符字面量;对象、成员和集合项初始化器;创建匿名类型和隐式类型数组的表达式。

以下是应用完成语句命令在不同上下文中的一些示例。

用例

完成语句之前

完成语句之后

类声明

public class Foo/*caret*/
public class Foo { /*caret*/ }

委托声明

delegate void ChangeHandler(object sender/*caret*/
internal delegate void ChangeHandler(object sender); /*caret*/

嵌套方法调用

myVar.DoSomething(foo.Bar(value/*caret*/
myVar.DoSomething(foo.Bar(value)); /*caret*/

if 语句

if(myVar != null/*caret*/
if(myVar != null) { /*caret*/ }

case 子句

switch (position) { case Position.Last/*caret*/ }
switch (position) { case Position.Last: /*caret*/ }

将单行语句转换为块(案例 A)

if(myVar != null) position = Position.Last;/*caret*/
if(myVar != null) { position = Position.Last; /*caret*/ }

将单行语句转换为块(案例 B)

if(myVar != null) /*caret*/position = Position.Last;
if(myVar != null) { /*caret*/ position = Position.Last; }

元素访问表达式

var myValues = new Value[10/*caret*/
var myValues = new Value[10]; /*caret*/

此功能在以下语言和技术中 受支持

语言:C#

语言:VB.NET

语言:C++

语言:ASP.NET

语言:Razor

语言:XAML

语言:Resx

语言:构建脚本

语言:SQL

此功能在 C# 中可用

此功能在 Visual Basic 中可用

此功能在 C++ 中可用

此功能在 ASP.NET 中不可用

此功能在 Razor 中不可用

此功能在 XAML 中不可用

此功能在资源文件中不可用

此功能在构建脚本文件中不可用

此功能在 SQL/NoSQL 文件和注入中不可用

此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。

最后修改日期: 2025年 9月 27日