Switch enum auto-fill

匿名 (未验证) 提交于 2019-12-03 02:45:02

问题:

I was typing a switch with an enum in VS 2013 and all case statements filled out automatically after I finished the switch. Now I can't repeat it. I was not hallucinating, the switch filled out with all enum options, one per case, automatically. Looked through MS docs for VS 2013 and didn't find it.

I use quite a few enums and this feature will save me a ton of time if I can find what it is I did to trigger it. Can anyone help?

回答1:

Use the code snipped sw(tab)(tab)

Hope this helps,



回答2:

Notice: This answer applies to performing the switch/enum autogeneration while also using Resharper.

Using Visual Studio 2013 and Resharper 8.2, the previously mentioned methods do not work. Here's how to actually get this generation to work when using Resharper. Hopefully it will save someone the fifteen minutes I just spent figuring this out.

Performing "sw(tab)(tab)" will only generate the following:

switch (nameOfEnumVariable) {  } 

Resharper can generate the labels using Alt + Enter (if your cursor stands in the switch statement) and selecting Generate switch labels as in the following screenshot:



The result looks like this:





回答3:

The selected answer is mostly correct, you don't need Resharper as other's have suggested (at least not with Visual Studio Professional 2012+).

1) type "sw" then "[tab][tab]" (as Marvin Smit said)

Which (as jmblack said) will generate something like:

  switch (switch_on)   {             default:   } 

but then

2) you need to select which thing to enumerate on (switch_on will be highlighted still at this point). So type in the Enum (or your variable of the enum type) while switch_on is highlited and hit [Enter][Enter].

(I just confirmed this worked on my machine running VS2012, and i'm fairly certain this is the same thing i have done on my other machine running VS2013, and i haven't tested other versions of VS (ultimate/express/etc.))



回答4:

Visual studio express 2012 - without Resharper:

1) write "switch"
2) press two times TAB, then you will see:

switch (switch_on) {         default: } 

(switch_on is highlited)
3) retype switch_on to your ENUM type (not a variable of your enum type, it did not work for me)
4) click somewhere else or press enter, now you should see all the enum items filled:

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) don't forget to change the input of your switch..



回答5:

By default, Visual Studion's snippet works correct. You should type "sw" and then press double "Tab".

If you use Resharper, the snippet doesn't work, because Resharper's snippet has more priority, by default. So, you should turn off resharper's snippet.

Go to "Resharper" -> "Template Explorer"-> "C#" then uncheck "switch". Try "sw" + double "Tab"



回答6:

I think what you need is this:

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

I tested it and works ( in VS2013 at least).



回答7:

Hi I just ran into the same problem, I just found out that when you do:

switch(nameofvariable){   default:   break; } 

when you are filling the variable and you double click on the variable of your choice (the enum) it will give you all the cases



回答8:

I've written a free and open source extension, based on Roslyn, for Visual Studio 2015 and 2017, that not only allows to fill the switch case for an enum, but is also capable of adding new cases if enum values (fields) have been added to the enum type definition, or sort the list of cases by value or name.

It's available here: Enum Case Generator

This is how to use it:



文章来源: Switch enum auto-fill
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!