演练:在 Visual Studio 中创建代码片段

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

可以创建自己的代码片段,并将其添加到 Visual Studio 已包含的代码片段中。 本文演示了如何通过几个步骤创建代码片段的过程。 只需创建一个 XML 文件,填写适当的元素,然后将代码添加到文件中即可。 此外还可以使用替换参数和项目引用。 然后将代码片段导入 Visual Studio 安装。

创建代码片段

  1. 打开 Visual Studio,然后选择“开始”屏幕中的“继续但无需代码”

    “开始”窗口的屏幕截图,其中选择了“继续但无需代码”选项。

  2. 在菜单栏中,选择“文件”>“新建文件”,或按 Ctrl+N

  3. 在“新建文件”对话框中选择“XML 文件”,然后选择“打开”

    “新建文件”对话框的屏幕截图,其中选择了“XML 文件”选项。

  4. 将以下基础代码片段模板粘贴到代码编辑器中。

    <?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>
    
  5. 在代码片段的 Title 元素中输入标题 Square Root

  6. Code 元素的“语言”属性中,对于 C# 代码片段请填写的 CSharp,对于 Visual Basic 请填写 VB

    提示

    要查看所有可用语言值,请浏览代码片段架构参考页中的属性

  7. 将以下代码片段添加到 Code 元素的 CDATA 部分。

    对于 C#:

        <![CDATA[double root = Math.Sqrt(16);]]>
    

    对于 Visual Basic:

        <![CDATA[Dim root = Math.Sqrt(16)]]>
    

    注意

    无法指定如何对代码片段 CDATA 部分中的代码行进行格式设置或缩进。 插入后,语言服务将自动设置所插入代码的格式。

  8. 在任意位置将代码片段保存为 SquareRoot.snippet

导入代码片段

  1. 要将代码片段导入 Visual Studio 安装,请选择“工具”>“代码片段管理器”或按 Ctrl+K、B

  2. 在“代码片段管理器”中,选择“导入”按钮。

  3. 导航到代码片段所在位置,选择该代码片段,然后选择“打开”

  4. 在“导入代码片段”对话框中,选择右窗格中的“My Code Snippets”文件夹。 选择完成,然后选择确定

    代码片段会复制到以下某一位置,具体取决于代码语言:

    %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets

    %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets

  5. 通过打开 C# 或 Visual Basic 项目来测试代码片段。 在编辑器中打开代码文件后,执行以下操作之一:

    • 在 Visual Studio 菜单栏上,选择“编辑”>“IntelliSense”>“插入片段”
    • 右键单击,然后从关联菜单中选择“片段”>“插入片段”
    • 在键盘上按 Ctrl+K、X
  6. 打开“My Code Snippets”文件夹,然后双击名为 Square Root 的代码片段。 该代码片段代码已插入代码文件中。

“说明”和“快捷方式”字段

在“代码片段管理器”中查看“说明”字段时,可以获得有关代码片段的详细信息。 快捷方式是为了插入代码片段而键入的标记。

  1. 要编辑代码片段,请根据代码语言从以下位置之一打开代码片段文件:

    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet

    提示

    由于要编辑在其中放置 Visual Studio 的目录中的文件,因此无需重新将其导入到 Visual Studio。

  2. AuthorDescriptionShortcut 元素添加到 Header 元素中,然后相应填充。

  3. 确认 Header 元素看起来类似于以下示例,然后保存文件。

    <Header>
        <Title>Square Root</Title>
        <Author>Myself</Author>
        <Description>Calculates the square root of 16.</Description>
        <Shortcut>sqrt</Shortcut>
    </Header>
    
  4. 打开 Visual Studio Code“代码片段管理器”并选中你的代码片段。 在右窗格中,注意“说明”、“创建者”和“快捷方式”字段现在已填充。

    代码片段管理器中的代码片段说明

  5. 要测试快捷方式,请打开之前使用的项目,在编辑器中键入 sqrt 并按 Tab(Visual Basic 按一次,C# 按两次)。 代码片段代码已插入。

替换参数

你可能希望用户替换代码片段的一部分。 例如,可能希望用户将变量名称替换为其当前项目中的某个名称。

可以提供两种类型的替换:文本和对象。

  • 使用元素来标识整体包含在代码片段中的代码替换对象,可在插入到代码中后进行自定义。 例如,字符串或数值。

  • 使用对象元素标识代码片段需要、但可能是在代码片段外部定义的项。 例如,对象实例或控件。

可以使用 SquareRoot.snippet 文件中的 Literal 元素来帮助用户轻松更改数字以计算其平方根。

  1. 修改 SquareRoot.snippet 文件中的 Snippet 元素,如下所示:

    <Snippet>
      <Code Language="CSharp">
        <![CDATA[double root = Math.Sqrt($Number$);]]>
      </Code>
      <Declarations>
        <Literal>
          <ID>Number</ID>
          <ToolTip>Enter the number you want the square root of.</ToolTip>
          <Default>16</Default>
        </Literal>
      </Declarations>
    </Snippet>
    

    请注意,串替换将会获得一个 ID (Number)。 将该 ID 用 $ 字符括起来,从而在代码片段中引用,如下所示:

    <![CDATA[double root = Math.Sqrt($Number$);]]>
    
  2. 保存片段文件。

  3. 打开项目,并插入片段。

    已插入代码片段,并且突出显示要替换的可编辑文本。 将鼠标悬停在替换参数上,以查看该值的工具提示。

    Visual Studio 中的代码片段替换参数工具提示

    提示

    如果片段中有多个可替换的参数,可按 Tab,从一个参数导航到另一个参数,以更改值。

导入命名空间

可通过包含 Imports 元素,使用代码片段添加 using 指令 (C#) 或 Imports 语句 (Visual Basic)。 对于 .NET Framework 项目,还可以通过使用 References 元素将引用添加到项目。

以下 XML 显示在 System.IO 命名空间中使用 File.Exists 方法的代码片段,因此可定义 Imports 元素,以导入 System.IO 命名空间。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>File Exists</Title>
      <Shortcut>exists</Shortcut>
    </Header>
    <Snippet>
      <Code Language="CSharp">
        <![CDATA[var exists = File.Exists("C:\\Temp\\Notes.txt");]]>
      </Code>
      <Imports>
        <Import>
          <Namespace>System.IO</Namespace>
        </Import>
      </Imports>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>