Visual Studio还是比较常用的,于是我研究了一下Visual Studio代码段,代码段是Visual Studio 2005 中最能体现效率的特点之一。在这里拿出来和大家分享一下,希望对大家有用。它可以避免单调乏味的输入过程(例如键入 for 循环),使您能够快速插入Visual Studio代码段,它还可以提供可完成特定任务(如通过网络发送数据)的模板。大部分内置的 C# 代码段都属于第一种类型 -这些代码段可以帮助您将重复输入降到最低,而很大一部分内置的 VB 代码段都属于第二种类型 - 使用这些代码段可以更容易地编写执行特定任务的代码。
#t#有两种插入Visual Studio代码段的方式。您可以在代码编辑器中键入代码段的别名,然后按两次 Tab 键(对于 VB 只需按一次 Tab 键)即刻插入代码段。在插入代码段之后,您可以通过按 Tab 键和 Shift+Tab 键跳到代码段的不同区域。这允许您快速更改需要修改的代码部分。请注意:在 C# 中,代码段别名也具有 IntelliSense。您可以在 IntelliSense 列表中通过其代码段图标指明某一项为代码段。
如果忘记了代码段的别名,还可以按“Ctrl+K、Ctrl+X”在代码编辑器内插入别名,也可单击鼠标右键,然后选择“插入代码段...”。这会显示代码段选取器,使用它可以浏览适用于当前编程语言的所有代码段以及选择要插入的代码段。这种插入Visual Studio代码段的方法对于 C# 和 Visual Basic 均有效。对于 Visual Basic 用户,还可以有另一种插入Visual Studio代码段的方式:您可以键入代码段别名的前几个字母,后跟“?”,然后按 Tab 键。Visual Studio 会显示一个按字母排序的列表,其中包含与突出显示的内容最为匹配的所有代码段的别名。此功能仅适用于 Visual Basic 用户。
从个人角度将,最令人兴奋的代码段功能部分是,您可以为个人使用而创建自己的代码段,也可以将其分享给其他同行使用。当然,您也可以下载其他开发人员创建好的代码段。
在 Visual Studio内部非常容易就可以创建您自己的代码段。我将通过一个示例说明如何操作。我经常会编写一些应急的实用程序来帮助我完成工作。其中的许多实用程序都有通用的模式:打开某个文件,执行一些处理,然后关闭该文件。以下是我的代码段的创建步骤。
步骤 1: 创建 XML 文件。每个代码段都包含在一个 XML 文件中。在 Visual Studio内部,只要转到“文件”>“新建. . .”>“文件. . .”,然后选择“XML 文件”类型即可。
步骤 2:定义代码段。如果有足够的兴趣,甚至还有一个可创建代码段的代码段。只要在该文件的第二行按下 Ctrl+K、Ctrl+X,选择“Snippet”代码段,就会自动为您插入一个代码段文件的模板。
标题、作者、快捷键和描述字段这些内容不言自明,我就不再具体说明了。< Snippet> 标签中的内容值得讨论,我下面的例子可以对此给出最好的解释。
实际上,您将所有代码放在了 <! [CDATA[...]]> 标签之内,而该标签是在 </ Code> 标签的内部。对于那些希望用户可以轻松替换的字段,您可以在这些字段两边放置一对“$”字符。在我的示例中,我设置了三个我的代码段用户可以轻松替换的参数:StrmReader、FilePath 和 Line。这三个参数在 CDATA 部分的内部使用,每个参数两侧都有一对“$”字符。此外,每个参数也必须在 < Declarations> 元素中进行定义。为每个参数指定一个 ID 和一个默认值(可选)。
敏锐的读者会注意到,在我的代码段内部还有另外一个我没有定义的参数: $end$。这是一个特殊参数,用于指定用户在代码段字段中填写完内容并按下 Enter 键后光标所在的位置。还有一个我在此处没有列出的特殊参数:$selected$。$selected$ 参数只对 SurroundsWith 类型的代码段有意义。它用于定义在使用“Surround With...”插入Visual Studio代码段时所选的代码段的放置位置。
- <?xml version="1.0" encoding="utf-8"?>
- <CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
- <Header>
- <Title>File Processing</Title>
- <Author>James Lau</Author>
- <Shortcut>fp</Shortcut>
- <Description>Opens a file, does some processing, and then closes the file.</Description>
- <SnippetTypes>
- <SnippetType>SurroundsWith</SnippetType>
- <SnippetType>Expansion</SnippetType>
- </SnippetTypes>
- </Header>
- <Snippet>
- <Declarations>
- <Literal>
- <ID>StrmReader</ID>
- <Default>strmReader</Default>
- </Literal>
- <Literal>
- <ID>FilePath</ID>
- <Default>fPath</Default>
- </Literal>
- <Literal>
- <ID>Line</ID>
- <Default>strLine</Default>
- </Literal>
- </Declarations>
- <Code Language="CSharp">
- <![CDATA[
- StreamReader $StrmReader$ = null;
- try
- {
- $StrmReader$ = new StreamReader($FilePath$);
- string $Line$;
- while (($Line$ = $StrmReader$.ReadLine()) != null)
- {
- // Perform some processing
- $selected$
- $end$
- }
- }
- catch (IOException ioex)
- {
- // Handle exception
- }
- finally
- {
- $StrmReader$.Close();
- }
- ]]>
- </Code>
- </Snippet>
- </CodeSnippet>