切换枚举自动填充

我在VS 2013中input了一个枚举types的开关,并在完成切换后自动填写所有case语句。 现在我不能重复。 我没有幻觉,交换机会自动填写所有的枚举选项,每个选项一个。 通过MS文档看VS 2013并没有find它。

我使用了不less枚举,如果能find触发它的function,这个function将为我节省大量的时间。 谁能帮忙?

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

希望这可以帮助,

注意:这个答案适用于执行开关/枚举自动生成,同时也使用Resharper。

使用Visual Studio 2013和Resharper 8.2,前面提到的方法不起作用。 以下是如何使用Resharper实际使这一代工作。 希望这能帮我省下十五分钟的时间。

执行“sw(制表符)(制表符)”只会生成以下内容:

 switch (nameOfEnumVariable) { } 

Resharper可以使用Alt + Enter (如果你的光标站在switch语句中)并且selectGenerate switch labels生成开关标签 )来生成标签 ,如下图所示:


使用Resharper菜单填写switch语句


结果如下所示:


在这里输入图像说明


所选的答案大部分是正确的,你不需要像其他人所build议的那样使用Resharper(至less不是Visual Studio Professional 2012+)。

1)键入“sw”然后“[tab] [tab]”(正如Marvin Smit所说)

其中(正如jmblack所说)会产生类似于:

  switch (switch_on) { default: } 

但是之后

2)你需要select枚举的东西( switch_on在这一点上仍然会突出显示)。 所以当switch_onswitch_oninputEnum(或枚举types的variables), switch_on [Enter] [Enter]。

(我刚刚证实这个工作在我的机器上运行VS2012,我相当肯定,这是我在我的另一台机器上运行VS2013做了同样的事情,我还没有testing其他版本的VS(最终/快递/等。 ))

Visual Studio Express 2012 – 无Resharper:

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

 switch (switch_on) { default: } 

(switch_on高亮)
3)重新键入switch_on到你的ENUMtypes (不是你的枚举types的variables,它不适用于我)
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; } 

5)不要忘记改变你的开关的input。

默认情况下,Visual Studion的代码段工作正确。 你应该input“sw”然后按双“Tab”。

如果您使用Resharper,则片段不起作用,因为默认情况下,Resharper的片段具有更多优先级。 所以,你应该closuresresharper的片段。

转到“Resharper” – >“模板资源pipe理器” – >“C#”,然后取消select“开关”。 尝试“sw”+双“Tab”

我已经为Visual Studio 2015和2017编写了一个基于Roslyn的免费和开放源代码的扩展,它不仅允许为一个枚举填充开关案例,而且还能够在枚举值(字段)的情况下添加新案例已被添加到枚举types定义中,或按值或名称对案例列表进行sorting。

这是可用的: Enum Case Generator

这是如何使用它:

在这里输入图像说明

我认为你需要的是这样的:

 sw(tab)(tab)enumVariableName(tab)(downArrow) 

我testing了它并且工作(至less在VS2013中)。

嗨,我刚刚遇到了同样的问题,我刚刚发现,当你这样做:

 switch(nameofvariable){ default: break; } 

当你填充variables,你双击你select的variables(枚举),它会给你所有的情况