工欲善其事,必先利其器。磨刀不误砍柴工。这些成语、俗语都告诉我们做事情前,先把用到的工具打理好,用起来才会得心应手,工作起来才会事半功倍!古代如此,在信息化的今天更是如此。
作为一个程序员,每天的工作就是敲代码,合理的配置我们所用的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,然后创建一个项目,添加一个类看看就知道结果了。
貌似红框里的四个都可以,我用的是第四个,有兴趣可以试试其他的。
下面是模板中所能识别的参数以及说明:
Parameter |
说明 |
clrversion |
公共语言运行时 (CLR)的当前版本。 |
GUID [1-10] |
用于替换项目文件中的项目 GUID的 GUID。 guid1))。 |
itemname |
用户在添加新项对话框中提供的名称。 |
machinename |
当前的计算机名称(例如,Computer01)。 |
projectname |
用户在新建项目对话框中提供的名称。 |
registeredorganization |
HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization中的注册表项值。 |
rootnamespace |
当前项目的根命名空间。 此参数用于仅在要添加到项目中的项中替换命名空间。 |
safeitemname |
用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。 |
safeprojectname |
用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。 |
time |
以 DD/MM/YYYY 00:00:00格式表示的当前时间。 |
userdomain |
当前的用户域。 |
username |
当前的用户名。 |
webnamespace |
当前网站的名称。 在 Web窗体模板中使用此参数以确保类名称是唯一的。 如果网站位于 Web服务器的根目录下,则此模板参数将解析为 Web服务器的根目录。 |
year |
以 YYYY格式表示的当前年份。 |
注意:模板参数区分大小写!
郑重声明:写这篇博客主要不是为了教大家如何自定义类模板,而是通过这件事情跟大家说明一个道理,就是不将就的精神。如果单纯的写如何自定义类模板,那一点意义都没有,因为这个东西随便在网上都能找到。而我们缺少的往往是这种思想,有了思想的指引,行动起来方向才会更加明确,才会让我们更加有效率。
不将就,我们才能提高,才能不断超越自己,如果安于现状,我们只会停滞不前,甚至倒退。俗话说:学如逆水行舟,不进则退嘛。所以要想不断进步,不断超越自己这种不将就的精神是必不可少的。看过这篇博客后大家跟我一起不将就,一起进步,一起提高吧!