コード スニペットCode snippets

コードスニペットは、コンテキスト メニュー コマンドまたはホット キーの組み合わせを使用してコード ファイルに挿入できる、再利用可能なコードの小さなブロックです。Code snippets are small blocks of reusable code that can be inserted in a code file using a context menu command or a combination of hotkeys. 通常、スニペットには try-finallyif-else などのよく使われるコード ブロックが含まれていますが、スニペットを使ってクラス全体またはメソッド全体を挿入することもできます。They typically contain commonly-used code blocks such as try-finally or if-else blocks, but they can be used to insert entire classes or methods.

コード スニペットは、C#、C++、Visual Basic、XML、T-SQL など、多数の言語で利用できます。Code snippets are available for a multitude of languages, including C#, C++, Visual Basic, XML, and T-SQL, to name a few. ある言語で使用可能なすべてのインストール済みスニペットを表示するには、Visual Studio で [ツール] メニューの [コード スニペット マネージャー] を開き、上部のドロップダウン メニューから言語を選択します。To view all the available installed snippets for a language, open the Code Snippets Manager from the Tools menu in Visual Studio, and choose the language from the drop-down menu at the top.

[コード スニペット マネージャー] ダイアログ ボックス

コード スニペットは、次の一般的な方法でアクセスできます。Code snippets can be accessed in the following general ways:

  • メニュー バーで、[編集] > [IntelliSense] > [スニペットの挿入] の順に選択しますOn the menu bar, choose Edit > IntelliSense > Insert Snippet...

  • コード エディターの右クリック メニューまたはコンテキスト メニューから、[スニペット] > [スニペットの挿入] を選択しますFrom the right-click or context menu in the code editor, choose Snippet > Insert Snippet...

  • キーボードで Ctrl + K + X キーを押しますFrom the keyboard, press Ctrl+K+X

拡張スニペットとブロックの挿入用スニペットExpansion snippets and surround-with snippets

Visual Studio には、2 種類のコード スニペットがあります。1 つ目は、指定した挿入ポイントに追加され、スニペット ショートカットを置換できる拡張スニペットで、2 つ目は、選択したコード ブロックの周囲に追加される、ブロックの挿入用スニペット (C# および C++ のみ) です。In Visual Studio there are two kinds of code snippet: expansion snippets, which are added at a specified insertion point and may replace a snippet shortcut, and surround-with snippets (C# and C++ only), which are added around a selected block of code.

拡張スニペットの例: C# では、ショートカット tryf は try-finally ブロックの挿入に使用されます。An example of an expansion snippet: in C# the shortcut tryf is used to insert a try-finally block:

try
{

}
finally
{

}

このスニペットを挿入するには、コード ウィンドウのコンテキスト メニューで [スニペットの挿入] をクリックしてから、[Visual C#] をクリックし、「tryf」と入力して、Tab キーを押します。または、「tryf」と入力して Tab キーを 2 回押します。You can insert this snippet by clicking Insert Snippet in the context menu of the code window, then Visual C#, then type tryf, and then press Tab. Or, you can type tryf and press Tab twice.

ブロックの挿入用スニペットの例: C++ では、ショートカット if は挿入スニペットまたはブロックの挿入用スニペットとして使用できます。An example of a surround-with snippet: in C++ the shortcut if can be used either as an insertion snippet or as a surround-with snippet. コード行 (例: return FALSE;) を選択した場合は、[ブロックの挿入] > [if] を選択すると、行の周りにスニペットが展開されます。If you select a line of code (for example return FALSE;), and then choose Surround With > if, the snippet is expanded around the line:

if (true)
{
    return FALSE;
}

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

スニペットには置換パラメーターを含めることができます。置換パラメーターとは、作成中の実際のコードに応じた置換を必要とするプレースホルダーです。Snippets can contain replacement parameters, which are placeholders that you must replace to fit the precise code you are writing. 前の例で、true は置換パラメーターであり、適切な条件への置換が必要です。In the previous example true is a replacement parameter, which you would replace with the appropriate condition. 置換を行うと、スニペット内の同じ置換パラメーターのすべてのインスタンスでもこれが繰り返されます。The replacement you make is repeated for every instance of the same replacement parameter in the snippet.

たとえば、Visual Basic には、プロパティを挿入するコード スニペットがあります。For example, in Visual Basic there is a code snippet that inserts a property. スニペットを挿入するには、Visual Basic コード ファイルの右クリック メニューまたはコンテキスト メニューから [スニペット] > [スニペットの挿入] を選択します。To insert the snippet, choose Snippet... > Insert Snippet from the right-click or context menu in a Visual Basic code file. 続いて、[コード パターン] > [プロパティ、プロシージャ、イベント] > [プロパティの定義] の順に選択します。Then, choose Code Patterns > Properties, Procedures, Events > Define a Property.

[プロパティの定義] のコード スニペット メニュー

次のコードが挿入されます。The following code is inserted:

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 のすべてのインスタンスが変更されます。If you change newPropertyValue to m_property, then every instance of newPropertyValue is changed. プロパティ宣言の StringInt に変更すると、set メソッド内の値も Int に変更されます。If you change String to Int in the property declaration, then the value in the set method is also changed to Int.

関連項目See also