Let's DIY our own snippet
snippet翻译过来就是代码片段,不过本文可不是讲为测试某个功能写个snippet,然后丢到SnippetCompiler里面去跑一跑,而是修改系统自带的snippet,使其更加符合个人呢的需求。
在VS里编程时,可以方便的使用这些snippet加快代码编写的速度,比如我们输入“for”,然后按两下Tab键,那么VS会自动生成的代码如下所示:
随后只需要按Tab切换即可完成for循环的编写,这样就省得自己来回在“=”,“<”,“>”,“+”这些符号之间纠结了,节省了很多时间。。。
这样的功能实际就是通过操作系统盘下Program Files\Microsoft Visual Studio 9.0\VC#\Snippets\1033\Visual C#下(如果你装的是中文版的VS,那么目录在Program Files\Microsoft Visual Studio 9.0\VC#\Snippets\2052\visual C#下)的这些snippet实现的。
比如我们打开for.snippet,可以清楚的看到$xx$这样的变量,生成代码时这些就变成了需要替换的部分。
知道了原理后,我们就可以改造了,比如在C#3.0后添加了隐式属性,可以通过prop实现,代码如下:
这样生成的是隐式属性,在《More Effective C#》第二版的最后一条提到:“隐式属性并不支持真正的不可变类型”,“且在应用了Serializable属性的类型中不能使用隐式属性,因为持久化存储的格式需要依赖于编译器生成的字段的名称,而该字段的名称则无法保证永远不变,任何对该类的修改都有可能会改变这个自动生成的字段的名称。”
所以有时我们还是需要C#2.0中定义属性的方式,此时我们改造prop的代码如下:
这样在我们输入myxprop,再按两下Tab键就可以得到显示定义属性的代码格式了。
当然,很多snippet定义好了我们没有必要画蛇添足的进行修改,但是诸如这样能够增加功能(比如可以在try.snippet中增加finally块),或者修改格式(比如在check.snippet中修改下空格缩进)之类的修改俺认为还是有必要的,毕竟写代码的时候心情也是个很重要的潜在影响因素嘛,动不动就纠结于标点或者按键弄错了,时不时的去Backspace,有时着实会疼。。。^_^
好了,就写到这了,雕虫小技,和没注意到这个功能的园友分享一下,大牛就飘过吧。。。^_^
出处:http://www.cnblogs.com/RockyMyx/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。