コード スニペット

適用対象:yesVisual Studio noVisual Studio for Mac noVisual Studio Code

コード スニペットは、右クリック コンテキスト メニュー コマンドまたはホットキーの組み合わせを使用してコード ファイルに追加できる、再利用可能なコードの小さなブロックです。 通常、コード スニペットには try-finally ブロックや if-else ブロックなどのよく使用されるコード ブロックが含まれていますが、それらを使用してクラスまたはメソッドの全体を追加することもできます。

Note

この記事は、Windows 上の Visual Studio に適用されます。 Visual Studio for Mac については、「コード スニペット (Visual Studio for Mac)」を参照してください。

コード スニペットは、C#、C++、Visual Basic など (一例です)、さまざまなプログラミング言語で使用することができます。

特定の言語で使用可能なすべてのスニペットを表示するには、メニュー バーから [ツール]>[コード スニペット マネージャー] を選択して (または、Ctrl+K キー、Ctrl+B キーを押して)、ダイアログ ボックスの上部にあるドロップダウン メニューから目的の言語を選択します。

Screenshot of the Code Snippets Manager dialog box.

Visual Studio では、コード スニペットをコード ファイルに追加する方法がいくつかあります。

  • メニュー バーで、[編集]>[IntelliSense]>[スニペットの挿入] の順に選択します

  • コード エディターの右クリック メニューまたはコンテキスト メニューから、[スニペット]>[スニペットの挿入] を選択します

  • キーボードで Ctrl+K キー、Ctrl+X キーを押します

拡張スニペットとブロックの挿入用スニペット

ご利用のコードに追加できるコード スニペットとしては、2 種類あります。

スニペットの種類 用途
展開 指定した挿入ポイントに追加され、スニペットのショートカットを置き換える場合があります
ブロックの挿入 選択したコード ブロックの周りに追加されます (C# と C++ でのみ使用できます)

C# の拡張スニペットの次の例では、ショートカット tryf によって try-finally ブロックが追加されています。

try
{

}
finally
{

}

この拡張スニペットを追加する方法を次に示します。

  1. コード ウィンドウで、スニペットを追加する場所にカーソルを置きます。

  2. 右クリックコンテキスト メニューから [スニペットの挿入] を選択します。

  3. [Visual C#] を選択してから、「tryf」と入力し、Tab キーを押します (または、「tryf」と入力して Tab キーを 2 回押します)。

C++ のブロックの挿入用スニペットの例では、ショートカット if は挿入スニペットまたはブロックの挿入用スニペットとして使用できます。 コード行 (例: return FALSE;) を選択した場合は、[ブロックの挿入]>[if] を選択すると、行の周りにスニペットが展開されます。

if (true)
{
    return FALSE;
}

スニペットの置換パラメーター

スニペットには、置換パラメーターを含めることができます。置換パラメーターとは、作成中のコードに応じた置換を必要とするプレースホルダーです。 前の例で、true は置換パラメーターであり、適切な条件への置換が必要です。 置換を行うと、スニペット内の同じ置換パラメーターのすべてのインスタンスでもこれが繰り返されます。

たとえば、Visual Basic には、プロパティを挿入するコード スニペットがあります。 スニペットを挿入するには、Visual Basic コード ファイルの右クリック コンテキスト メニューから [スニペット]>[スニペットの挿入] の順に選択します。 続いて、[コード パターン]>[プロパティ、プロシージャ、イベント]>[プロパティの定義] の順に選択します。

Screenshot of the code snippet menu for Define a Property.

次のコードが挿入されます。

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 のすべてのインスタンスが変更されます。 プロパティ宣言の StringInt に変更すると、set メソッド内の値も Int に変更されます。