切换枚举自动填充

Met*_*hor 65 c# visual-studio-2013

我在VS 2013中键入了一个带枚举的开关,所有的case语句在我完成切换后自动填写.现在我不能重复了.我没有产生幻觉,开关填充了所有枚举选项,每个案例一个,自动.查看VS 2013的MS文档并没有找到它.

我使用了很多枚举,如果我能找到触发它的功能,这个功能可以节省大量时间.有人可以帮忙吗?

jms*_*msb 102

注意:此答案适用于在使用Resharper时执行switch/enum自动生成.

使用Visual Studio 2013和Resharper 8.2,前面提到的方法不起作用.以下是使用Resharper时如何实际使这一代工作.希望它能在十五分钟内拯救某人,我只是想把它搞清楚了.

执行"sw(tab)(tab)"只会生成以下内容:

switch (nameOfEnumVariable)
{

}
Run Code Online (Sandbox Code Playgroud)

Resharper可以使用Alt + Enter生成标签(如果光标位于switch语句中)并选择生成开关标签,如以下屏幕截图所示:


使用Resharper菜单填写switch语句


结果如下:


在此输入图像描述


  • 不适用于VS2012和R#8.2.3000.5176对我来说......"生成开关标签"缺失,只有"CS1522 ...的选项"出现在Alt + Enter上.有什么建议? (5认同)
  • 这是使用VS2012和R#8.2完成的.谢谢你让我头疼. (3认同)
  • 这也适用于VS2010和ReSharper 8.2.谢谢=) (2认同)

Mar*_*mit 82

使用代码snipped sw(tab)(tab)

希望这可以帮助,

  • 您必须在为switch语句键入参数后单击它以自动生成case和break行,至少在枚举的情况下. (12认同)
  • 意思是......键入`sw`,会弹出intellisense提示你构建一个开关,当突出显示时再点击选项卡并再次选项卡,你会得到你的开关语句 (3认同)
  • VS2019还是一样 (2认同)

00j*_*0jt 22

所选答案大多是正确的,您不需要像其他人所建议的那样使用Resharper(至少不使用Visual Studio Professional 2012+).

1)键入"sw"然后"[tab] [tab]"(Marvin Smit如上所述)

其中(jmblack如上所述)将产生如下内容:

  switch (switch_on)
  {
            default:
  }
Run Code Online (Sandbox Code Playgroud)

但是之后

2)您需要选择要枚举的内容(此时switch_on仍将突出显示).因此,在高位时键入Enum(或枚举类型的变量)switch_on并按[Enter] [Enter].

(我刚刚确认这在我运行VS2012的机器上运行,我相当确定这与我在运行VS2013的其他机器上所做的一样,而且我还没有测试其他版本的VS(终极/快递/等等). ))


chv*_*lav 18

Visual Studio express 2012 - 没有Resharper:

1)写"开关"
2)按两次TAB,然后你会看到:

switch (switch_on)
{
        default:
}
Run Code Online (Sandbox Code Playgroud)

(switch_on是highlited)
3)重新输入switch_on到你的ENUM类型(不是你的枚举类型的变量,它对我不起作用)
4)点击其他地方或按回车键,现在你应该看到所有枚举项目填充:

switch (YOUR_ENUM_TYPE)
{
    case YOUR_ENUM_TYPE.Item1:
        break;
    case YOUR_ENUM_TYPE.Item2:
        break;
    case YOUR_ENUM_TYPE.Item3:
        break;
    default:
        break;
}
Run Code Online (Sandbox Code Playgroud)

5)别忘了更改开关的输入..


小智 6

我想你需要的是这个:

sw(tab)(tab)enumVariableName(tab)(downArrow)
Run Code Online (Sandbox Code Playgroud)

我测试了它并且可以工作(至少在 VS2013 中)。