ReSharper的switch语句如何快速补全?

上一篇文章中,收到了大家的很多好评、鼓励和祝福,非常感动,真诚的谢谢大家。也希望每个朋友都能保持一个积极向上的心态,去迎接丰富多彩的人生。

在开发过程中,我们经常会遇到大量重复或者类似的代码需要编写,当然我们可以通过各种模式来避免这种情况出现,但肯定有些时候我们是无法避免的,那么遇到这种情况,我们该如何快速完成这些重复或类似的代码的编写呢。下面来说一下我的方法,当然,如果大家有更好的方法,希望能分享出来。

说到大量重复类似代码,就不得不说switch/case,如果一个枚举里面有几十项,在switch的时候,每一项都要写一个case,如下所示:

这样的代码,如果纯手写,既枯燥,又浪费时间,但是代码必须要写,如何快速的生成这些switch/case代码才是关键,我总结了我在编写代码过程中使过的五种方法:

  1. VS直接生成——只适用于2010版本以上的VS,而且必须是DotNet开发
  2. 使用Excel完成代码生成

当进行DotNet开发的时候,这种switch/case可以很容易的使用2010以上版本的VS自动生成,当然也只能是DotNet,如果是C++,那么不好意思了,不支持。

在VS中可以通过一个switch的snippet来自动生成枚举的项的case语句。具体操作步骤:先写switch,然后按Tab键,然后写入枚举变量名,然后按Enter键,这样其余所有代码就可由VS自动完成了。是不是很方便呢,下面直接看图:

说到ReSharper,就不得不说,DotNet开发人员实在是太幸福了,各种标准库,各种帮助类,就连辅助工具也堪称神器,让我等在工作中使用C++的码农羡慕嫉妒恨啊。

直接上图,看了图,你就知道什么是神器了:

貌似装了ReSharper后,VS的自动完成功能就不好用了,不知道只有我这样,还是普遍现象。不过既然用了ReSharper,而且也这么好用,那么就不去计较VS的自动完成了。

ReSharper还有很多强大的功能,等待你的发现。

VS自动完成、ReSharper一键生成固然十分方便,以至于其他方法都弱爆了,但是这是有前提的,只有DotNet开发才有这么感人的功能。而C++呢,我们只能求助于下面的方法了。

对于程序员来说,想要高效的完成代码的编写,就需要熟练掌握各种快捷键,有了这些方便强大的快捷键,那么完成这些重复的switch/case,只是分分钟的事。

下面是操作过程中用到的快捷键:

  • Alt:选择代码中某几列

如果想了解更多VS快捷键的介绍,请参考的这两篇文章:  和 。

做Web开发的朋友应该对代码生成器不是很陌生,至少我当初写三层时,就经常使用代码生成器来生成操作数据库的代码,代码的编写效率那叫一个快。虽然现在转战C++了,但是代码生成器还是能够派上用场的。

我所接触过的代码生成器主要有三种:

  • :CodeSmith是我接触的最早的一个代码生成器,个人感觉功能十分强大。自从有了他,就基本上不再用其他的工具。详细的使用资料可以参考,或者参考的这篇文章 。
  • :T4是微软的代码生成引擎,由于本人没有使用过,所以功能上就不做评论了。
  • :动软代码生成器是国产的一款软件,本人也只是在操作SQL的时候用过,对于数据库的支持功能比较强大。

由于T4、动软代码生成器用的不多,所以只介绍一下使用CodeSmith生成switch/case代码的方法。

CodeSmith语法什么的,这里就不介绍了,直接上模板:

有了此模板就可以很方便的生成代码了:

相比于以上两种方法,使用Excel可能会麻烦一些,但是这里只是提供一种思路和方法,在真正遇到问题的时候,要具体问题具体对待。其实Excel功能是很强大的,能熟练的使用Excel,在很多情况下,是可以提高工作效率、编码效率等很多效率的。废话不多说,下面就演示一下如何使用Excel来完成代码的生成:

当我们遇到switch/case等大量重复或相似代码的时候,最好不要纯手敲,或者通过复制粘贴后再修改,这样不仅效率低,而且对自身也没有提高,可以说是费力不讨好。

而如果能够熟练的使用一些辅助工具,那么就可以事半功倍,大大的提高工作效率,何乐而不为呢。

假设你是一个武林高手,如果再能得到一个神兵利器,那么是不是可以天下无敌了呢。

你的编程水平很高,能够使用各种模式来避免重复代码,如果再能熟练的使用VS(快捷键)、代码生成器等工具,那么恭喜你,终于可以从大量重复的体力劳动工作中解脱了,终于,整个世界清静了。

以上几种只是我比较常用的方法,消灭重复代码编写的方法还有很多。如果你有比较好的方法,那么希望你能分享出来,本人必将不胜感激。

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

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

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

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







其中(jmblack如上所述)将产生如下内容:

(我刚刚确认这在我运行VS2012的机器上运行,我相当确定这与我在运行VS2013的其他机器上所做的一样,而且我还没有测试其他版本的VS(终极/快递/等等). ))


2)按两次TAB,然后你会看到:

3)重新输入switch_on到你的ENUM类型(不是你的枚举类型的变量,它对我不起作用)
4)点击其他地方或按回车键,现在你应该看到所有枚举项目填充:

5)别忘了更改开关的输入..


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


我要回帖

更多关于 switch eshop进不去 的文章

 

随机推荐