切换枚举自动填充

时间:2013-11-04 22:04:40

标签: c# visual-studio-2013

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

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

9 个答案:

答案 0 :(得分:98)

注意:此答案适用于在使用Resharper时执行切换/枚举自动生成。

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

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

switch (nameOfEnumVariable)
{

}

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


Using the Resharper menu to fill in a switch statement


结果如下:


enter image description here


答案 1 :(得分:75)

使用代码段sw(tabtab)

希望这有帮助,

答案 2 :(得分:18)

选择的答案大多是正确的,你不需要像其他人建议的那样使用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(终极/快递) /等))

答案 3 :(得分:14)

Visual Studio express 2012 - 没有Resharper:

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

switch (switch_on)
{
        default:
}

(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;
}

5)不要忘记更改开关的输入..

答案 4 :(得分:3)

默认情况下,Visual Studion的代码段正常。您应键入“sw”,然后按“Tab”键。

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

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

答案 5 :(得分:3)

我为Visual Studio 2015和2017编写了一个基于Roslyn的免费开源扩展程序,它不仅可以填充枚举的开关案例,而且还可以添加新案例,如果枚举值(字段)已添加到枚举类型定义中,或按值或名称对案例列表进行排序。

可以在这里找到:Enum Case Generator

这是如何使用它:

enter image description here

答案 6 :(得分:2)

我认为你需要的是:

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

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

答案 7 :(得分:2)

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

Generate switch labels

答案 8 :(得分:1)

嗨,我刚遇到同样的问题,我刚刚发现你做的时候:

switch(nameofvariable){
  default:
  break;
}

当你填充变量并双击你选择的变量(枚举)时,它会给你所有的情况

相关问题