用好VS2005之减少重复代码输入

2010-08-28 10:48:27来源:西部e网作者:

    想起这个题目,不得不由衷地佩服MS的细心度,我们想到了没有想到的他都给我们想到了。让我们尽可能的解放coding之苦。

  程序员,不得不在thinking 和coding之间进行痛苦的折磨,然而coding占去了我们的大量宝贵的时间。我们重复重复又重复着那些一辈子都不会忘掉的代码,重复重复又重复的重复着那些被我们敲烂的代码。

  发现这个还是一次偶然的机会,我自定义了一个Prop函数,结果在按下去的时候不小心碰到了Tab键结果出现了以下的代码:

private int myVar; public int MyProperty { get { return myVar;} set { myVar = value;} }

  熟悉的朋友应当已经发现这是一个标准的设置属性的字段。为什么我输入了Prop会自出来这些呢?带着疑问找到了google大法,原来已经早就有人发现了:这是2005的一个特色之一:代码段。

  代码段是提供了将现成的代码段插入到项目中的方法。它可以方便的把我们常用的一些代码用"快捷键"的方式让我们迅速的输入到IDE中。这里我不知道怎么形容,暂且用快捷键来代替吧。

  具体的输入方法:例如:我们输入Prop然后回车,接着按着Tab几秒钟,IDE就会自动给我们添加上去代码段所定义的代码。而且支持可修改部分,我们可以方便的接着使用Tab来穿梭于各个可修改部分。

  有人会有疑问,这些代码段怎么来的呢?IDE已经给我们自带了一部分,我们也可以根据自己的偏好来进行自行创建。

  打开VS2005的 \VC#\Snippets\2052\Visual C# 目录,我们会发现有一些以.snippet结尾的文件,这些就是系统给我们默认定义好的代码段。我们用文本文档打开,不难发现其实就是标准的XML文件。现对照if代码段进行一些讲解(对应文件为if.snippet)。看起代码:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">//以上是代码段的一个标准格式 <Header>
<Title>if</Title>
//代码段的说明部分,指定代码段的标题。可以显示在代码段插入和代码段管理器的代码段说明部分。
<Shortcut>if</Shortcut>
//代码段的快捷方式。就是输入后按着Tab自动产生代码
<Description>if 语句的代码段</Description>
//指定代码段内容的说明信息,它可以给我们在使用代码段的时候提供工具提示,并且可以在代码段管理器中提供说明
<Author>Microsoft Corporation</Author>
//版权信息
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
//以上部分指定vs如何插入代码段。SurroundsWith允许代码段放置在选定代码快的周围,而Expansion的值允许将代码段插入光标所在的位置。
</Header>
<Snippet>
//此处开始指定代码的引用、导入、声明代码。主体部分
<Declarations>
//指定当前作为代码段组成部分的文本和对象,对代码段可以编辑部分。
<Literal>//<Literal> 段定义可编辑的代码段的文本。他用与标识对代码快的替换。我们可以使用Tab来进行切换修改。可以按照函数的概念来理解。这里就是我们传递参数值
<ID>expression</ID>
//替代标识
<ToolTip>要计算的表达式</ToolTip>//提示文本
<Default>true</Default>//默认值
</Literal>//若需多个,则可重复<Literal>代码段。
</Declarations>
<Code Language="csharp">
<![CDATA[if ($expression$) { $selected$ $end$ }]]>
</Code>//看code部分代码段。这里就是我们的核心部分。其中Language可以指定我们在用什么语言开发的时候使用此类代码段。
<![CDATA[部分就是我们标准的C#语法了。if ($expression$)看清楚if()括号部分的代码,这里就是使用到我们在<Literal>部分定义的替代标识了。以$开始和结束,由于我们在定义的时候制定了默认值为true,所以在使用代码段的时候等价于if(true)。而括弧部分就是主体$selected$表示此处可以被选择,$end$表示代码段结束。
</Snippet>
</CodeSnippet>
</CodeSnippets>

  看,通过上边的分析,代码段是不是很简单。我们在对照一下核心部分代码:

  代码段部分代码:

if ($expression$) { $selected$ $end$ }

  正常语句代码:

if (条件) { 代码 }

  了解了这些知识,那么我们该如何创建自己的代码段呢。最简单的方法就是用记事本,当然要十分熟悉这些语句。另外IDE也给我们提供了创建文件的方法。

  [文件]→[新建文件] →[XML文件],重新命名为:mytest. Snippet,一定要以snippet结尾,否则以后没有办法使用此代码段。参照上边的讲解,相信大家不难以葫芦画瓢来创建自己的代码段。

  建立好了,我们该怎么使用呢?[工具]→[代码段管理器] →[导入]即可。代码段管理器可以方便的浏览现有的代码段。我们也可以把自己做好的代码段共享给别人,只要别人通过代码段管理器就可以导入制订好的代码段。很方便。

  另外我们还可以创建VSI安装文件来进行安装使用。相信大部分人对VSI安装文件都有所了解了,熟悉的初学者开发工具包就是利用VSI文件发布的。具体的方法请看我的后续文章。用好2005之创建安装程序 (.vsi)

  通过以上介绍,相信大家会对代码段有一个很清楚的了解。我们可以通过"代码段管理器"方便的浏览已经存在的代码段以及它们的含义。

  代码段是预编写的代码片段,您可以随时使用 Visual Studio 2005 将这些代码片段插入到您的应用程序中。这些代码段减少了键入重复代码或搜索示例所用的时间,从而提高了工作效率。

赞助商链接: