您的位置:首页 > 编程语言

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

2009-08-19 22:15 309 查看
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文件了,以后项目中遇到这类的大量重复劳动,再也不用头疼了。

祝大家好运!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息