我在 VS 2013 中输入了一个带有枚举的开关,并且在我完成开关后自动填写了所有 case 语句。现在我不能重复了。我没有产生幻觉,开关自动填充了所有枚举选项,每种情况一个。浏览了 VS 2013 的 MS 文档并没有找到它。
我使用了很多枚举,如果我能找到触发它的方法,这个功能将为我节省大量时间。任何人都可以帮忙吗?
我在 VS 2013 中输入了一个带有枚举的开关,并且在我完成开关后自动填写了所有 case 语句。现在我不能重复了。我没有产生幻觉,开关自动填充了所有枚举选项,每种情况一个。浏览了 VS 2013 的 MS 文档并没有找到它。
我使用了很多枚举,如果我能找到触发它的方法,这个功能将为我节省大量时间。任何人都可以帮忙吗?
注意:此答案适用于在使用 Resharper 的同时执行开关/枚举自动生成。
使用 Visual Studio 2013 和 Resharper 8.2,前面提到的方法不起作用。以下是使用 Resharper 时如何真正让这一代工作。希望它可以节省我刚刚花了十五分钟解决这个问题的时间。
执行“sw(tab)(tab)”只会生成以下内容:
switch (nameOfEnumVariable)
{
}
Resharper 可以使用Alt + Enter生成标签(如果您的光标位于 switch 语句中)并选择生成开关标签,如下面的屏幕截图所示:
结果如下所示:
使用剪断的代码 sw(tab)(tab)
希望这可以帮助,
选择的答案大部分是正确的,您不需要像其他人建议的那样使用 Resharper(至少在 Visual Studio Professional 2012+ 中不需要)。
1)输入“sw”然后输入“[tab][tab]”(Marvin Smit
如上所述)
其中(jmblack
如前所述)将产生类似:
switch (switch_on)
{
default:
}
但是之后
2)您需要选择要枚举的内容(switch_on
此时仍会突出显示)。因此,在突出显示时输入枚举(或枚举类型的变量),switch_on
然后按 [Enter][Enter]。
(我刚刚确认这在我运行 VS2012 的机器上有效,我很确定这与我在运行 VS2013 的另一台机器上所做的相同,而且我还没有测试过其他版本的 VS(ultimate/express/etc. ))
Visual Studio 2017、2019 - 没有 Resharper:
1)写“switch”
2)按两次 TAB,然后你会看到:
switch (switch_on)
{
default:
}
(switch_on 被高亮显示)
3)重新输入switch_on
您的枚举变量或输入
4)按 ENTER 或单击其他地方(按 TAB 不起作用),现在您应该看到所有枚举项都已填充:
switch (YOUR_ENUM_VARIABLE_OR_TYPE)
{
case YOUR_ENUM_TYPE.Item1:
break;
case YOUR_ENUM_TYPE.Item2:
break;
case YOUR_ENUM_TYPE.Item3:
break;
default:
break;
}
我想你需要的是这样的:
sw(tab)(tab)enumVariableName(tab)(downArrow)
我对其进行了测试并且可以正常工作(至少在 VS2013 中)。
默认情况下,Visual Studion 的代码片段可以正常工作。您应该键入“sw”,然后按双“Tab”。
如果您使用 Resharper,则该代码段不起作用,因为默认情况下,Resharper 的代码段具有更高的优先级。因此,您应该关闭 resharper 的代码段。
转到“Resharper”->“模板资源管理器”->“C#”,然后取消选中“开关”。试试“sw”+双“Tab”
我已经为 Visual Studio 2015 和 2017 编写了一个基于Roslyn的免费和开源扩展,它不仅允许填充枚举的 switch case,而且还能够在枚举值(字段)有的情况下添加新的 case已添加到枚举类型定义中,或按值或名称对案例列表进行排序。
它在这里可用:枚举案例生成器
这是如何使用它:
嗨,我刚刚遇到了同样的问题,当您这样做时,我才发现:
switch(nameofvariable){
default:
break;
}
当您填充变量并双击您选择的变量(枚举)时,它将为您提供所有情况