81

我在 VS 2013 中输入了一个带有枚举的开关,并且在我完成开关后自动填写了所有 case 语句。现在我不能重复了。我没有产生幻觉,开关自动填充了所有枚举选项,每种情况一个。浏览了 VS 2013 的 MS 文档并没有找到它。

我使用了很多枚举,如果我能找到触发它的方法,这个功能将为我节省大量时间。任何人都可以帮忙吗?

4

9 回答 9

112

注意:此答案适用于在使用 Resharper 的同时执行开关/枚举自动生成。

使用 Visual Studio 2013 和 Resharper 8.2,前面提到的方法不起作用。以下是使用 Resharper 时如何真正让这一代工作。希望它可以节省我刚刚花了十五分钟解决这个问题的时间。

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

switch (nameOfEnumVariable)
{

}

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


使用 Resharper 菜单填写 switch 语句


结果如下所示:


在此处输入图像描述


于 2014-04-28T13:21:48.550 回答
97

使用剪断的代码 sw(tab)(tab)

希望这可以帮助,

于 2013-11-04T22:09:10.980 回答
26

选择的答案大部分是正确的,您不需要像其他人建议的那样使用 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. ))

于 2015-03-19T14:19:08.573 回答
24

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;
}
于 2015-12-11T08:05:58.797 回答
6

我想你需要的是这样的:

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

我对其进行了测试并且可以正常工作(至少在 VS2013 中)。

于 2017-05-18T15:40:13.510 回答
4

默认情况下,Visual Studion 的代码片段可以正常工作。您应该键入“sw”,然后按双“Tab”。

如果您使用 Resharper,则该代码段不起作用,因为默认情况下,Resharper 的代码段具有更高的优先级。因此,您应该关闭 resharper 的代码段。

转到“Resharper”->“模板资源管理器”->“C#”,然后取消选中“开关”。试试“sw”+双“Tab”

于 2013-11-04T22:26:26.233 回答
3

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

它在这里可用:枚举案例生成器

这是如何使用它:

在此处输入图像描述

于 2016-12-07T17:03:07.853 回答
2

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

switch(nameofvariable){
  default:
  break;
}

当您填充变量并双击您选择的变量(枚举)时,它将为您提供所有情况

于 2017-06-03T12:46:24.357 回答
2

VS 2019 + resharper 使用您的变量创建一个空开关。单击第一个大括号“ { ”然后按alt + enter您将看到生成开关标签。截图如下:

生成开关标签

于 2019-08-27T11:10:01.267 回答