补全语句
此命令会插入必要的语法元素(括号、大括号、分号等),并将光标定位到可以开始输入下一条语句的位置。
完成当前语句
输入语句的核心部分(请参见下面的场景示例)。
按 Control+Shift+Enter 或从主菜单中选择 。 或者,您可以按 Control+Shift+A ,在弹出窗口中开始输入命令名称,然后在那里选择它。
此命令在许多场景中都很有用,包括自动关闭括号、添加分号、完成 if、 while 和 for 语句等。
例如,每当您声明一个新方法时,在指定方法参数后,完成语句功能会派上用场:
此时,要开始编写方法体,您通常需要:
插入缺失的括号。
按 输入 。
插入一个开括号。
再次按 输入 。
使用 ReSharper,您只需按 Control+Shift+Enter ,它会自动插入一个闭括号以及两个大括号,并将光标放置在可以继续编写方法体的位置:
以类似的方式,完成语句功能适用于以下语言结构:
类型和类型成员 :类、接口、结构、枚举、委托、字段、事件和方法声明。
语句:
if、while、do、switch、using、lock、continue、break和return语句;case和default子句;将单行语句转换为块语句。表达式 :调用、元素访问、字符串/字符字面量;对象、成员和集合项初始化器;创建匿名类型和隐式类型数组的表达式。
以下是应用完成语句命令在不同上下文中的一些示例。
用例 | 完成语句之前 | 完成语句之后 |
|---|---|---|
类声明 |
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(myVar != null/*caret*/
|
if(myVar != null)
{
/*caret*/
}
|
|
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# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。