企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
工欲善其事,必先利其器。磨刀不误砍柴工。这些成语、俗语都告诉我们做事情前,先把用到的工具打理好,用起来才会得心应手,工作起来才会事半功倍!古代如此,在信息化的今天更是如此。 作为一个程序员,每天的工作就是敲代码,合理的配置我们所用的IDE,会让我们的工作事半功倍。有的人可能会说,现在的IDE都非常的智能了,不需要我们自己手动配置了。的确现在的工具真的是越来越好用,几乎所有的常用开发工具都有智能提示、自动补全代码等贴心功能,为我们的工作带来了很大的方便,但仍有一些重复的工作需要我们手动来完成。像我们在新建类的时候,经常会需要加入自己或公司的信息、版权、以及创建时间等信息,而这些东西一般都是固定的,所以我们就可以建一个模板,每次新建类的时候这些信息就会自动生成。不光是类,接口、CSS文件、等等都可以。而且不光是在写代码的时候可以用到这种方法,在平时的工作中同样适用,例如我们经常会发邮件,而工作中的邮件通常格式是比较固定的,所以我们就可以建一个模板等等,还有什么Word等Office产品都可以通过类似的设置,让我们的工作变得轻松。 其实最重要的是这种不将就的思想,如果一件事情重复做了两遍以上,那么我们就应该想想,是不是有什么方法可以让我们不再重复。一般情况下是会有的。好了切入正题吧,用具体的例子来进一步说明这种思想的好处吧。 1.打开安装目录下Class.zip所在的目录: 32位 C:\ProgramFiles\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\2052 64位 C:\ProgramFiles(x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Code\2052 将Class.zip里面的Class.cs文件修改成自己需要的内容,下面是我自己修改的类: ~~~ /********************************** * 创建人:刘水镜 * 时间:$time$ * 说明: * 博客:http://blog.csdn.net/liushuijinger ***********************************/ using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ >= 3.5)using System.Linq; $endif$using System.Text; namespace $rootnamespace$ { public class $safeitemrootname$ { } } ~~~ 其中以“$xxx$”为模板变量,例如上面的$time$在新建类的时候就会显示当前的系统时间,具体的变量说明会在下面进一步说明。 接下来的工作就是将修改的类注册一下,好让VS能够识别:  2.打开Visual Studio 2010 命令提示(单击“开始”,指向“所有程序”、“MicrosoftVisual Studio 2010”和“Visual Studio Tools”,然后单击“Visual Studio 命令提示(2010)”),执行 “devenv/InstallVsTemplates”。等待一小会儿,就可以打开VS2010,然后创建一个项目,添加一个类看看就知道结果了。 ![](https://box.kancloud.cn/5aceb44c334d1bbba279e5c71b559fc1_237x389.png) 貌似红框里的四个都可以,我用的是第四个,有兴趣可以试试其他的。 下面是模板中所能识别的参数以及说明: <table border="1" cellpadding="0" cellspacing="0" valign="top" style="direction:ltr; border-collapse:collapse; border-style:solid; border-color:#A3A3A3; border-width:1pt"><tbody><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-left:0pt; margin-right:0pt; margin-top:3pt; margin-bottom:3pt; font-family:'Segoe UI'; font-size:10pt"><span style="font-weight:bold">Parameter</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-left:0pt; margin-right:0pt; margin-top:3pt; margin-bottom:3pt; font-family:微软雅黑; font-size:10pt"><span style="font-weight:bold">说明</span></p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">clrversion</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-size:9.75pt"><span style="font-family:微软雅黑">公共语言运行时</span><span style="font-family:&quot;Segoe UI&quot;"> (CLR)</span><span style="font-family:微软雅黑">的当前版本。</span></p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">GUID [1-10]</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin:0in"><span style="font-family:微软雅黑; font-size:9.75pt">用于替换项目文件中的项目</span><span style="font-family:'Segoe UI'; font-size:9.75pt"> GUID</span><span style="font-family:微软雅黑; font-size:9.75pt">的</span><span style="font-family:'Segoe UI'; font-size:9.75pt"> GUID</span><span style="font-family:微软雅黑; font-size:9.75pt">。 </span><span style="font-family:'Courier New'; font-size:10.5pt">guid1)</span><span style="font-family:微软雅黑; font-size:9.75pt">)。</span></p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">itemname</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin:0in; font-family:微软雅黑; font-size:9.75pt">用户在添加新项对话框中提供的名称。</p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">machinename</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-size:9.75pt"><span style="font-family:微软雅黑">当前的计算机名称(例如,</span><span style="font-family:&quot;Segoe UI&quot;">Computer01</span><span style="font-family:微软雅黑">)。</span></p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">projectname</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:微软雅黑; font-size:9.75pt">用户在<span style="font-weight:bold">新建项目</span>对话框中提供的名称。</p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">registeredorganization</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-size:9.75pt"><span style="font-family:&quot;Segoe UI&quot;">HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization</span><span style="font-family:微软雅黑">中的注册表项值。</span></p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">rootnamespace</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:微软雅黑; font-size:9.75pt">当前项目的根命名空间。 此参数用于仅在要添加到项目中的项中替换命名空间。</p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">safeitemname</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:微软雅黑; font-size:9.75pt">用户在<span style="font-weight:bold">“添加新项”</span>对话框中提供的名称,名称中移除了所有不安全的字符和空格。</p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">safeprojectname</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:微软雅黑; font-size:9.75pt">用户在<span style="font-weight:bold">“新建项目”</span>对话框中提供的名称,名称中移除了所有不安全的字符和空格。</p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">time</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-size:9.75pt"><span style="font-family:微软雅黑">以</span><span style="font-family:&quot;Segoe UI&quot;"> DD/MM/YYYY 00:00:00</span><span style="font-family:微软雅黑">格式表示的当前时间。</span></p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">userdomain</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:微软雅黑; font-size:9.75pt">当前的用户域。</p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">username</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:微软雅黑; font-size:9.75pt">当前的用户名。</p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">webnamespace</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-size:9.75pt"><span style="font-family:微软雅黑">当前网站的名称。 在</span><span style="font-family:&quot;Segoe UI&quot;"> Web</span><span style="font-family:微软雅黑">窗体模板中使用此参数以确保类名称是唯一的。 如果网站位于</span><span style="font-family:&quot;Segoe UI&quot;"> Web</span><span style="font-family:微软雅黑">服务器的根目录下,则此模板参数将解析为</span><span style="font-family:&quot;Segoe UI&quot;"> Web</span><span style="font-family:微软雅黑">服务器的根目录。</span></p></td></tr><tr><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:1.4937in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-family:'Segoe UI'; font-size:9.75pt"><span style="font-weight:bold">year</span></p></td><td style="border-style:solid; border-color:#A3A3A3; border-width:1pt; vertical-align:top; width:8.2479in; padding:4pt 4pt 4pt 4pt"><p style="margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:0in; font-size:9.75pt"><span style="font-family:微软雅黑">以</span><span style="font-family:&quot;Segoe UI&quot;"> YYYY</span><span style="font-family:微软雅黑">格式表示的当前年份。</span></p></td></tr></tbody></table> **注意:模板参数区分大小写!** 郑重声明:写这篇博客主要不是为了教大家如何自定义类模板,而是通过这件事情跟大家说明一个道理,就是不将就的精神。如果单纯的写如何自定义类模板,那一点意义都没有,因为这个东西随便在网上都能找到。而我们缺少的往往是这种思想,有了思想的指引,行动起来方向才会更加明确,才会让我们更加有效率。 不将就,我们才能提高,才能不断超越自己,如果安于现状,我们只会停滞不前,甚至倒退。俗话说:学如逆水行舟,不进则退嘛。所以要想不断进步,不断超越自己这种不将就的精神是必不可少的。看过这篇博客后大家跟我一起不将就,一起进步,一起提高吧!