演练:在 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元素中输入标题平方根

  6. 在元素的属性CodeLanguage,填写 C# 代码片段的 CSharp 或 Visual Basic 的 VB

    小窍门

    若要查看所有可用的语言值,请参阅代码片段架构引用中的属性

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

    对于 C#:

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

    对于 Visual Basic:

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

    注释

    不能指定如何在代码片段的节中 CDATA 设置代码行的格式或缩进代码行。 插入后,语言服务会自动设置插入的代码的格式。

  8. 将代码片段保存为 SquareRoot.snippet

导入代码片段

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

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

  3. 导航到代码片段的位置,选择它,然后选择 “打开”。

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

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

    • %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+KX
  6. 打开 “我的代码片段”,然后双击名为 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. 将元素DescriptionShortcut元素添加到AuthorHeader元素,并填充它们。

  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 ,并为 Visual Basic 按 Tab 一次,或为 C# 按两次。 插入代码片段代码。

替换参数

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

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

  • 使用 Literal 元素 标识完全包含在代码片段中的代码的替换,该代码可在插入代码后进行自定义。 例如,字符串或数值。

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

可以使用 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 从一个参数导航到另一个参数以更改值。

导入命名空间

可以使用代码片段添加 using 指令(C#)或 Imports 语句(Visual Basic),方法是包括 Imports 元素。 对于 .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>