ReSharper制作Template帮助我们快速输入代码

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
1 
2、右击User Templates选择新建
2 
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 = "有数据";
        }
效果如下:
3 
右边参数列表显示了有三个可变参数,分别是ColumnName、lbl_Info、ColumnIndex,之后在最上边的Shortcut中给我们定义的Template赋一个快捷键,就像if模式的“if”,我们可以赋数字1。
Description中填写该Template的描述,“everwhere”超链打开可以定义该Template作用的范围,如下:
4 
作用语言、版本、语法上下文兼容时或任何地方等等选项,很容易看懂。
4、最后,保存我们定义好的Template文件,在任意项目的CS文件中,敲1,然后单击Tab键,你就会发现出现了我们定义的结构,其中可变参数通过Tab来切换,一个参数赋值后,需要该参数的地方全都变了,多么方便呀:
5 
至此,我们可以制作自己的Template文件了,以后项目中遇到这类的大量重复劳动,再也不用头疼了。
祝大家好运!
原文地址:https://www.cnblogs.com/tristinjet/p/1550203.html