逐步解說:在 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. Square Root 標題輸入 Title 元素片段。

  6. Code 元素的語言屬性中,填入 CSharp (若為 C# 片段) 或 VB (若為 Visual Basic)。

    提示

    若要查看所有可用語言值,請參閱程式碼片段結構描述參考中的屬性

  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+KB

  2. 程式碼片段管理員中,選取匯入按鈕。

  3. 瀏覽至程式碼片段的位置,選取它,然後選取開啟

  4. 匯入程式碼片段對話框中,選取右側窗格中的我的程式碼片段資料夾。 選取結束,然後選取 OK

    視程式碼語言而定,該程式碼片段會被複製到下列其中一個位置:

    %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. 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 程式碼片段管理員,然後選取程式碼片段。 在右側窗格中,您應該會發現系統現已填入描述作者捷徑欄位。

    [程式碼片段管理員] 中的程式碼片段描述

  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>