VisualStudio具有强大的代码便捷输入设计,其中的template就非常值得赞赏。大家应该用过下面这几种语句模块吧:
if (bool) { }
while (true) { } switch (enum) { } try { } catch (Exception) { throw; }
这些语句的快速输入怎么实现?拿if模式来说,输入if,然后按Tab键,就会产生
if (bool) { }
这里,我们就来实现这种效果,因为在实际的开发项目中,经常遇到大量重复性的输入,只是个别单词不相同,整体结构都一样。比如:
if(sqlDataReader1["ColumnName"]==DBNull.Value) { txt_ColumnName.Text = ""; cbo_ColumnName.SelectedIndex = 0; lbl_Info.Text = "无数据"; } else { txt_ColumnName.Text = sqlDataReader1["ColumnName"].ToString(); cbo_ColumnName.value = sqlDataReader1["ColumnIndex"].ToString(); lbl_Info.Text = "有数据"; }
在上面的例子中,每次只需要变动“ColumnName”、“ColumnIndex”和lbl_Info即可,但如果有几十个字段都这样去写,枯燥呀。
现在就用ReSharper来生成一个Template:(当然并不是只有Resharper才可以制作,用VS也同样可以,只是某些过程有少许区别而已)
1、选择ReSharper---Live Templates
2、右击User Templates选择新建
3、在出现的编辑窗口写入下面的代码
if(sqlDataReader1["$ColumnName$"]==DBNull.Value) { txt_$ColumnName$.Text = ""; cbo_$ColumnName$.SelectedIndex = 0; $lbl_Info$.Text = "无数据"; } else { txt_$ColumnName$.Text = sqlDataReader1["$ColumnName$"].ToString(); cbo_$ColumnName$.value = sqlDataReader1["$ColumnIndex$"].ToString(); $lbl_Info$.Text = "有数据"; }
效果如下:
右边参数列表显示了有三个可变参数,分别是ColumnName、lbl_Info、ColumnIndex,之后在最上边的Shortcut中给我们定义的Template赋一个快捷键,就像if模式的“if”,我们可以赋数字1。
Description中填写该Template的描述,“everwhere”超链打开可以定义该Template作用的范围,如下:
作用语言、版本、语法上下文兼容时或任何地方等等选项,很容易看懂。
4、最后,保存我们定义好的Template文件,在任意项目的CS文件中,敲1,然后单击Tab键,你就会发现出现了我们定义的结构,其中可变参数通过Tab来切换,一个参数赋值后,需要该参数的地方全都变了,多么方便呀:
至此,我们可以制作自己的Template文件了,以后项目中遇到这类的大量重复劳动,再也不用头疼了。
祝大家好运!