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
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文件了,以后项目中遇到这类的大量重复劳动,再也不用头疼了。
祝大家好运!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述