次の方法で共有


コード スニペットとその使用方法

コード スニペットは、コード ファイルに追加できる再利用可能なコードの小さなブロックです。 スニペットには、通常、 Try...Finally ブロックや If...Else ブロックなど、よく使用されるコード ブロックが含まれています。 コード スニペットを使用して、クラスまたはメソッド全体を追加することもできます。

コード スニペットには、スニペットを選択するために使用するタイトルがあり、スニペットを挿入するために入力できるショートカット名を持つことができます。 スニペットには、プレースホルダーとして機能する置換パラメーターを含めることもできます。 スニペットは、C#、C++、Visual Basic など、多くの言語で使用できます。

拡張スニペットと囲みスニペット

コードには、次の 2 種類のコード スニペットを追加できます。

  • 拡張スニペットは、指定した挿入ポイントに挿入します。
  • 選択したコードに 囲まれた スニペットが追加され、C# と C++ でのみ使用できます。

使用可能なスニペットを見つける

言語で使用可能なスニペットを表示するには、メニュー バーから [ツール>コード スニペット マネージャー ] を選択するか、 Ctrl+KB キーを押して、ドロップダウン メニューから目的の言語を選択します。

[コード スニペット マネージャー] ダイアログ ボックスのスクリーンショット。

スニペットの一覧に表示されるように独自のスニペットを作成してインポートするには、「 チュートリアル: Visual Studio でコード スニペットを作成する」を参照してください。

コード ファイルにスニペットを追加する

コード ファイルにスニペットを追加するには:

  1. コード エディターで、カーソルを置くか、スニペットを追加する C# または C++ コードを選択します。

  2. 以下のいずれかのアクションを実行します:

    • Visual Studio のメニュー バーで、 編集>IntelliSense>Insert スニペット または 編集>IntelliSense>Surround With を選択します。
    • 右クリックし、コンテキスト メニューから スニペット>スニペットを挿入 または スニペット>で囲む を選択します。
    • キーボードから +K、X キーを押して拡張スニペットを、Ctrl+KS キーを押して囲みスニペットを表示します。
  3. ドロップダウン リストで目的のスニペットをダブルクリックするか、スニペットのショートカットを入力して Tab キーまたは Enter キーを押します。

拡張スニペットを追加する

たとえば、C# 拡張スニペット tryf は、次の Try...Finally ブロックを追加します。

try
{

}
finally
{

}

この拡張スニペットを追加するには:

  1. コード エディターで、スニペットを追加する場所にカーソルを置きます。
  2. 右クリックして右クリックコンテキスト メニューから [ スニペットの挿入 ] を選択するか、メニュー バーまたはキーボード コマンドを使用します。
  3. Visual C# フォルダーを開き、ドロップダウン リストで tryf をダブルクリックするか、tryf を選択して Tab キーまたは Enter キーを押します。

ヒント

カーソルをカーソル位置に置き、「 tryf」と入力してから Tab キーを 2 回押すこともできます。

surround-with スニペットを追加する

次の C++ スニペットの例では、ショートカット if を挿入スニペットまたはサラウンドスニペットとして使用できます。 コード行のreturn FALSE;を選択し、「囲む」 オプションを選択して>「if」を挿入すると、その行を中心にスニペットが展開されます。

if (true)
{
    return FALSE;
}

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

スニペットには置換パラメーターを含めることができます。これは、記述するコードに合わせて置き換える必要があるプレースホルダーです。 前の例では、 true は置換パラメーターであり、適切な条件に置き換えます。 置換は、スニペット内の置換パラメーターのすべてのインスタンスに対して繰り返されます。

たとえば、Visual Basic には、プロパティを定義するコード スニペットがあります。 スニペットを挿入するには:

  1. Visual Basic コード ファイルの右クリック コンテキスト メニューで、[ スニペット>Insert スニペット] を選択します。
  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)」を参照してください。

ファイルの場所

ファイルの場所をアプリケーションに合わせる場合は、次の要因を考慮してください。

  • アクセス可能な場所を見つけます。 ユーザーはコンピューターの Program Files フォルダーにアクセスできない可能性があるため、アプリケーション ファイルを含むユーザー ファイルの格納が機能しない可能性があります。

  • 安全な場所を見つけます。 C:\ のようなルート フォルダーにファイルを格納することは安全ではありません。 アプリケーション データの場合は、[ アプリケーション データ ] フォルダーを使用することをお勧めします。 個々のユーザー データの場合、アプリケーションは各ユーザーの ドキュメント フォルダーにファイルを作成できます。

  • 有効なファイル名を使用します。 OpenFileDialogコントロールとSaveFileDialog コントロールを使用して、無効なファイル名の可能性を減らすことができます。

  • コードでファイルを操作する前に、ユーザーが選択したファイルが削除される可能性があることに注意してください。 また、ユーザーがファイルに書き込むアクセス許可を持っていない場合もあります。

安全

スニペットのセキュリティは、ソース コードで使用する場所と、コード内で使用したスニペットを変更する方法によって異なります。 次の一覧には、考慮すべきいくつかの領域が含まれています。

  • ファイルとデータベースへのアクセス
  • コードアクセスセキュリティ
  • イベント ログやレジストリなどのリソースの保護
  • シークレットの保存
  • 入力の確認
  • スクリプト テクノロジへのデータの受け渡し

詳細については、「 アプリケーションのセキュリティ保護」を参照してください。

ダウンロードしたコード スニペット

Visual Studio によってインストールされたコード スニペット自体は、セキュリティ上の危険ではありません。 ただし、アプリケーションにセキュリティ リスクを生み出す可能性があります。 インターネットからダウンロードしたスニペットは、他のダウンロードしたコンテンツと同様に、細心の注意を払って扱う必要があります。 信頼できるサイトからのみスニペットをダウンロードし、up-to-date ウイルス ソフトウェアを使用します。

ダウンロードしたすべてのスニペット ファイルをメモ帳または Visual Studio の XML エディターで開き、慎重に確認してからインストールしてください。 次の問題に注意してください。

  • 実行した場合にシステムに損害を与える可能性があるスニペット コード。 ソース コードを実行する前に注意深く読んでください。

  • HelpURL 悪意のあるスクリプト ファイルを実行したり、不快な Web サイトを表示したりする URL を含むスニペット ファイル内のブロック。

  • プロジェクトに暗黙的に追加され、システム上のどこからでも読み込むことができる参照を含むスニペット。 これらの参照は、スニペットをダウンロードするのと同じ場所からダウンロードできます。 その後、スニペットは、悪意のあるコードを実行する参照内のメソッドを呼び出す可能性があります。 このような参照を検出するには、スニペット ファイルの Imports ブロックと References ブロックを確認します。