程式碼片段及其使用方式

程式碼片段是小區塊的可重複使用程式碼,可以加入到程式碼檔案中。 程式碼片段通常包含常用的程式碼區塊,例如 Try...FinallyIf...Else 區塊。 您也可以使用程式碼片段來新增整個類別或方法。

程式碼片段不僅具有用於選取程式碼片段的標題,而且具有可鍵入以插入程式碼片段的捷徑名稱。 程式碼片段還可以包含取代參數,做為預留位置。 程式碼片段可用於多種語言,包括 C#、C++ 和 Visual Basic。

擴充程式碼片段和範圍陳述式程式碼片段

您可以將兩種程式碼片段新增至程式碼:

  • 將在指定的插入點新增 [擴充] 程式碼片段。
  • 將在選取的程式碼周圍新增 [範圍陳述式] 程式碼片段,並且僅適用於 C# 和 C++。

尋找可用的程式碼片段

若要檢視某種語言的可用程式碼片段,請從選單列選取 [工具]> [程式碼片段管理員],或按 [ctrl]+[K]、[B],然後從下拉式功能表中選取您想要的語言。

[程式碼片段管理員] 對話方塊的螢幕擷取畫面。

若要建立並匯入您自己的程式碼片段,使其出現在程式碼片段清單中,請參閱逐步解說:在 Visual Studio 中建立程式碼片段

新增程式碼片段至程式碼檔案

新增程式碼片段至程式碼檔案:

  1. 在程式碼編輯器中,將資料指標放在要新增程式碼片段的位置或選擇 C# 或 C++ 程式碼。

  2. 執行下列其中一項動作:

    • 在 Visual Studio 選單列上,選擇 [編輯]> [IntelliSense]> [插入程式碼片段] 或 [編輯]> [IntelliSense]> [範圍陳述式]
    • 以滑鼠右鍵按一下,然後從特色選單中選擇 [程式碼片段]> [插入程式碼片段] 或 [程式碼片段]> [範圍陳述式]
    • 從鍵盤按 [Ctrl]+[K]、[X] 作為擴充程式碼片段,或 [Ctrl]+[K]、[S] 作為範圍陳述式程式碼片段。
  3. 在下拉清單中按兩下所需的程式碼片段,或鍵入程式碼片段捷徑,然後按 TabEnter

新增擴充程式碼片段

例如,C# 擴充程式碼片段 tryf 將新增下列 Try...Finally 區塊:

try
{

}
finally
{

}

若要新增此擴充程式碼片段,請執行以下操作:

  1. 在程式碼編輯器中,將游標放在您要新增程式碼片段的位置。
  2. 以滑鼠右鍵按一下,然後從滑鼠右鍵特色選單中選取 [插入程式碼片段],或者使用選單列或鍵盤命令。
  3. 開啟 [Visual C#] 資料夾,然後在下拉式清單中按兩下 [tryf],或選取 [tryf],然後按 [Tab] 或 [Enter] 鍵。

提示

您也可以將資料指標放在插入點,鍵入 [tryf],然後按兩次 [Tab] 鍵。

新增範圍陳述式程式碼片段

在下列 C++ 程式碼片段範例中,捷徑 if 可用作插入程式碼片段或範圍陳述式程式碼片段。 如果您選取程式碼行 return FALSE;,然後選擇 [範圍陳述式]> [if],程式碼片段隨即在此行周圍展開。

if (true)
{
    return FALSE;
}

程式碼片段取代參數

程式碼片段可以包含取代參數,也就是您必須取代的預留位置,以符合您撰寫的程式碼。 在上述範例中,true 是取代參數,您必須以適當的條件取代。 對於此程式碼片段中取代參數的每個執行個體,都會重複取代。

例如,Visual Basic 有一個定義屬性的程式碼片段。 若要插入程式碼片段:

  1. 在 Visual Basic 程式碼檔案的滑鼠右鍵內容功能表中,選取 [程式碼片段]>[插入程式碼片段]
  2. 選取 [程式碼模式]>[屬性、程序、事件]>[定義屬性]

顯示定義屬性的程式碼片段功能表的螢幕擷取畫面。

以下是已插入的程式碼:

Private newPropertyValue As String
Public Property NewProperty() As String
    Get
        Return newPropertyValue
    End Get
    Set(ByVal value As String)
        newPropertyValue = value
    End Set
End Property

如果您變更 newPropertyValuem_property,則 newPropertyValue 的每個執行個體都會變更。 如果您在屬性宣告中將 String 變更為 Int,則 Set 方法中的值也會變更為 Int

使用程式碼片段的最佳做法

程式碼片段中的程式碼只會顯示最基本的做法。 對於大部分的應用程式,此程式碼必須經過修改以符合應用程式。

例外狀況處理

一般來說,程式碼片段 Try...Catch 區塊會攔截並重新擲回所有例外狀況,但這可能適用於您的專案。 對於每個例外狀況而言,有數種回應的方法。 如需範例,請參閱如何使用 try/catch 處理例外狀況 (C#)Try...Catch...Finally 陳述式 (Visual Basic)

檔案位置

當您調整應用程式的檔案位置時,請務必考慮下列因素。

  • 尋找可存取的位置。 使用者可能無法存取電腦的 [程式檔案] 資料夾,因此應用程式檔案的使用者存檔作業可能無法正常運作。

  • 尋找安全位置。 將檔案儲存在 C:\等根資料夾並不安全。 對於應用程式資料,最好使用 [應用程式資料] 資料夾。 若是個別使用者資料,應用程式可以在每位使用者的 [文件] 資料夾中建立檔案。

  • 使用有效的檔案名稱。 您可以使用 OpenFileDialogSaveFileDialog 控制項,從而減少發生無效檔案名稱的可能性。

  • 請注意,您可以在程式碼操作檔案之前刪除使用者選取的檔案。 此外,使用者可能沒有寫入該檔案的權限。

安全性

程式碼片段的安全性視其在原始程式碼中的使用位置,以及程式碼中的修改方式而定。 下列清單包含一些需要考量的部分:

  • 檔案和資料庫存取
  • 程式碼存取安全性
  • 保護資源,例如事件記錄檔和登錄
  • 儲存密碼
  • 驗證輸入
  • 將資料傳遞至指令碼技術

如需詳細資訊,請參閱保護應用程式

已下載的程式碼片段

Visual Studio 所安裝的程式碼片段本身並沒有安全性方面的危險。 不過,這些程式碼片段在您的應用程式中可能會產生安全性風險。 從網際網路下載的程式碼片段應視為任何其他下載的內容,因此必須格外謹慎處理。 只從您信任的網站下載程式碼片段,並使用最新的防毒軟體。

在 [記事本] 或 Visual Studio 的 XML 編輯器中開啟所有下載的程式碼片段檔案,並仔細檢閱後再進行安裝。 請注意下列問題:

  • 執行程式碼片段的程式碼時,可能會損害您的系統。 執行前,請仔細閱讀原始程式碼。

  • 程式碼片段檔案中的 HelpURL 區塊包含執行惡意指令檔或顯示攻擊性網站的 URL。

  • 程式碼片段包含以無訊息模式新增至專案,並且可能會從您系統上的任何位置載入的參考。 您可以從下載程式碼片段的同一位置下載這些參考。 程式碼片段可能會接著呼叫參考中執行惡意程式碼的方法。 若要偵測這類參考,請檢閱程式碼片段檔案中的 ImportsReferences 區塊。