代码段是使用上下文菜单命令或者热键(hotkeys)的组合在代码文件中插入的可重用的代码。它们可以插入整个类或方法。能够提高我们开发的效率,节约时间。
Visual Studio自带了一些常用的代码段,比如在C#中,插入指定的代码段。就以try finaly为示例。
首先在类中输入tryf,然后连接点击两次Tab键。就会自动生成try finally代码段。如图:
创建代码段必须是XML文件,可以根据创建的代码段文件修改相应的元素和增加一些元素。最后把制作完成的代码段导入到我们的Visual Studio中。
首先我们先来创建一个代码段文件,选中项目,右击添加-新建项-选择XML文件,这个时候给XML文件起一个名字,同时把后面的.xml后缀名修改成. Snippet。如图:。
这个时候已经创建好一个代码段文件了,现在添加基本代码段模板:
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title></Title> </Header> <Snippet> <Code Language=""> <![CDATA[]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
首先我们来看一下Header元素,我们模板默认只有一个Title子元素。实际上Header里面有很多子元素(参考http://msdn.microsoft.com/zh-cn/library/ms171428.aspx)。
Title元素指的是标题,现在设置一个文本值“代码段示例”。
<Title>代码段示例</Title>
我们还可以对header元素里面在增加一些子元素,比如Author(作者)、Description(描述)和Shortcut(快捷键)。Shortcut在这特别讲解一下,Shortcut可以作为插入代码段的快捷方式,如果我们Shortcut元素的文本值设置了EX,要把此代码段输出,在代码编辑器中输入EX,然后连按两次Tab就能显示刚才定义好的代码段了。特别注意下Shortcut元素的文本值只能包含字母数字字符、连字符 ( - ) 和下划线 ( _ )。
<Header> <Title>代码段示例</Title> <Author>Mr Lee</Author> <Description>这个是用来演示代码段的创建。</Description> <Shortcut>EX</Shortcut> </Header>
Header还有不少子元素,您可以按上面提供的链接去研究。
这个时候Header元素设置可以满足我们一般的需求了,现在为snippet元素设置一些信息。
首先要设置我们代码段要在哪个语言中使用,在这主要以C#为主,这个时候Code元素的Language要设置为CSharp。
<Code Language="CSharp">
其它语言请参考: http://msdn.microsoft.com/zh-cn/library/ms171421.aspx
这个时候,我们可以定义一些我们想输出的文本值了。在<![CDATA[]]>里面设置。
<Snippet> <Code Language="CSharp"> <![CDATA[ Response.Write("一个简单的代码段完成了。"); ]]> </Code> </Snippet>
下面是我们完成的整段代码段内容,例如:
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>代码段示例</Title> <Author>Mr Lee</Author> <Description>这个是用来演示代码段的创建。</Description> <Shortcut>EX</Shortcut> </Header> <Snippet> <Code Language="CSharp"> <![CDATA[ Response.Write("一个简单的代码段完成了。"); ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
导入代码段之前,语言选项请选择Visual C#。
解释下刚才上面设置的标题、作者和描述在哪可以看到。
参考:http://msdn.microsoft.com/zh-cn/library/ms165392.aspx