Visual C# の IntelliSense

Visual C# の IntelliSense は、エディターでコーディングする際、およびイミディエイト モード コマンド ウィンドウでデバッグしている間に使用可能です。

入力候補一覧

Visual C# での IntelliSense コンプリート リストには、メンバーの一覧や入力候補などからのトークンが含まれています。 コンプリート リストでは、以下にすばやくアクセスできます。

コンプリート リストのコード スニペット

Visual C# のコンプリート リストには、コード スニペットが含まれており、事前に定義されたコードの本体をプログラムに簡単に挿入できます。 コード スニペットは、スニペットの Shortcut 要素 (IntelliSense コード スニペット) としてコンプリート リストに表示されます。 既定で Visual C# で利用できるコード スニペットの詳細については、「Visual C# のコード スニペット」を参照してください。

コンプリート リストの言語キーワード

Visual C# のコンプリート リストには、言語キーワードも含まれています。 C# の言語キーワードの詳細については、「C# のキーワード」を参照してください。

コンプリート リストでの拡張メソッド

Visual C# のコンプリート リストには、スコープ内にある拡張メソッドが含まれます。

注意

Visual C# のコンプリート リストでは、String オブジェクトのすべての拡張メソッドが表示されるわけではありません。

拡張メソッドでは、インスタンス メソッドとは異なるアイコンが使用されます。 表示されるアイコンの一覧については、「[クラス ビュー] ウィンドウとオブジェクト ブラウザーのアイコン」を参照してください。 同じ名前のインスタンス メソッドと拡張メソッドが両方ともスコープ内にある場合、コンプリート リストには拡張メソッドのアイコンが表示されます。

フィルター処理されたコンプリート リスト

IntelliSense では、フィルターを使用して、不要なメンバーをコンプリート リストから削除します。

Visual C# では、次の項目用に表示されるコンプリート リストをフィルター処理します。

  • インターフェイスおよび基本クラス。 IntelliSense では、クラス宣言の基本およびインターフェイス リストおよび制約リストの両方で、インターフェイスおよび基本クラスのコンプリート リストから項目を自動的に削除します。 たとえば、列挙型は基本クラスのコンプリート リストには表示されません。これは、列挙型が基本クラスで使用できないためです。 基本クラスのコンプリート リストには、インターフェイスおよび名前空間だけが含まれます。 リストで項目を選択し、コンマを入力すると、コンプリート リストから基本クラスが削除されます。これは、Visual C# では多重継承がサポートされていないためです。 制約句の場合も、同様の動作になります。

  • 属性: 属性を型に適用した場合、コンプリート リストはフィルター処理され、Attribute などそれらの型を含む名前空間からの型だけがリストに残ります。

  • as 演算子および is 演算子

  • Catch 句

  • オブジェクト初期化子: 初期化できるメンバーだけがコンプリート リストに表示されます。

  • 新しいキーワード: 「new」と入力し、Space キーを押すと、コンプリート リストが表示されます。 コードの状況に応じて、リストの項目が自動的に選択されます。 たとえば、メソッドの宣言用と return ステートメント用の項目がコンプリート リストで自動的に選択されます。

  • enum キーワード: 列挙型 (Enum) の割り当ての等号 (=) の次に Space キーを押すと、コンプリート リストが表示されます。 コードの状況に応じて、リストの項目が自動的に選択されます。 たとえば、キーワード return の入力後や、宣言の作成時に、コンプリート リストで項目が自動的に選択されます。

  • as 演算子と is 演算子: as または is のキーワードを入力してから Space キーを押すと、フィルター処理されたコンプリート リストが自動的に表示されます。

  • イベント: キーワード event を入力した場合、コンプリート リストにはデリゲート型のみが含まれます。

  • パラメーターを入力すると、パラメーターに一致するメソッド オーバーロードが先頭になるよう、パラメーター ヘルプによって自動的に並べ替えが行われます。 複数のメソッド オーバーロードを使用できる場合は、上向きまたは下向きの矢印を使用し、一覧で次に使用できるオーバーロードに移動できます。

最近使用したメンバー

IntelliSense は、オブジェクト名の自動補完のために、ポップアップ メンバーの一覧ボックスで最近選択したメンバーを記憶します。 次回メンバーの一覧を使用するときに、最近使用したメンバーが上部に表示されます。 最近使用したメンバーの履歴は、IDE の各セッションの間に消去されます。

override

override と入力してから Space キーを押すと、オーバーライドできる有効な基本クラス メンバーすべてが IntelliSense によりポップアップ リスト ボックスに表示されます。 override の後ろにメソッドの戻り値の型を入力すると、同じ型を返すメソッドのみが表示されます。 一致が見つからなかった場合はすべての基本クラスのメンバーが表示されます。

自動コード生成

using を追加します。

using を追加する IntelliSense 操作の使用によって、作成中のコードにだけ集中できるので、それ以外の部分に注意を払う必要がなくなります。

using の追加操作を実行するには、解決できない型参照にカーソルを置きます。 たとえば、コンソール アプリケーションを作成し、Main メソッド本体に XmlTextReader を追加すると、解決できない型参照と見なされ、XmlTextReader の右端の文字の下にスマート タグが表示されます。

スマート タグ イメージを使用して追加

using を追加する機能は、[IntelliSense] メニューまたはコンテキスト メニューの [競合の解決] サブメニューから選択して呼び出します。また、スマート タグから呼び出すこともできます。 スマート タグは、バインドされていない型の上または横にカーソルが置かれた場合にのみ表示されます。

拡張スマート タグ イメージを使用して追加

using の整理

[using の整理] オプションは、ソース コードの動作を変更することなく、usingextern の宣言を並べ替えおよび削除します。 時間の経過に伴い、不要で整理されていない using ディレクティブのために、ソース ファイルが肥大化して読みにくくなる場合があります。 [using の整理] オプションは、使用されない using ディレクティブを削除してソース コードをコンパクトにし、並べ替えて読みやすくします。

Visual Studio IDE で使用可能なオプションを参照するには、[編集] メニューで、[IntelliSense] をポイントしてから、[using の整理] をポイントします。 IDE には、usings ディレクティブの並び替えや削除に関する以下のオプションがあります。

インターフェイスの実装

IntelliSense を使用すると、コード エディターでの作業中にインターフェイスを簡単に実装できます。 通常、インターフェイスを適切に実装するには、クラス内で、インターフェイスのすべてのメンバーについてメソッド宣言を作成する必要があります。 IntelliSense を使用した場合、クラス宣言でインターフェイスの名前を入力すると、スマート タグが表示されます。 スマート タグには、インターフェイスを自動的に実装する際のオプションが表示され、名前付けを明示的に行うか、暗黙的に行うかを選択できます。 明示的な名前付けを使用した場合、メソッド宣言にインターフェイス名が追加されます。逆に暗黙的な名前付けを使用した場合、メソッド宣言には所属するインターフェイスは明示されません。 明示的に名前付けされたインターフェイス メソッドには、インターフェイスのインスタンスからアクセスすることしかできず、クラスのインスタンスからアクセスすることはできません。 詳細については、「明示的なインターフェイスの実装」を参照してください。

インターフェイスの実装機能では、そのインターフェイスに必要な最低限の数のメソッド スタブが生成されます。 基本クラスにインターフェイスの一部だけが実装されている場合、これらのスタブは再生成されません。

抽象基本クラスの実装

IntelliSense には、コード エディターでの作業中、抽象基本クラスのメンバーを自動的に実装するためのオプションが用意されています。 通常、抽象基本クラスのメンバーを実装するには、派生クラスで抽象基本クラスのメソッドごとに新しいメソッド定義を作成する必要があります。 IntelliSense を使用した場合、クラス宣言で抽象基本クラスの名前を入力すると、スマート タグが表示されます。 このスマート タグで、基本クラスのメソッドを自動的に実装するためのオプションを選択できます。

抽象基本クラスの実装機能によって生成されるメソッド スタブは、MethodStub.snippet ファイルで定義されたコード スニペットがベースになります。 コード スニペットは変更できます。 詳細については、「チュートリアル: コード スニペットを作成する」を参照してください。

<a name="generate-from-usage>

使用法から生成

[使用法から生成] 機能では、クラスとメンバーを定義する前にそれらを使用することができます。 使用されますが、まだ定義されていないクラス、コンストラクター、メソッド、プロパティ、フィールド、または列挙型に対してスタブを生成することができます。 コード内の現在の場所を離れずに、新しい型とメンバーを生成することができます。 これにより、ワークフローの中断を最小限にします。

未定義の識別子の下にそれぞれ波線の下線が表示されます。 識別子の上にマウス ポインターを置くと、ヒントにエラー メッセージが表示されます。

適切なオプションを表示するには、次の手順のいずれかを使用することができます。

  • 未定義の識別子をクリックします。 左端の文字の下に短い下線が表示されます。 短い下線の上にマウス ポインターを置くと、スマート タグ (アイコン) が表示されます。 スマート タグをクリックします。

  • 未定義の識別子をクリックして、Ctrl + . (ピリオド) を押します。

  • 未定義の識別子を右クリックして、[生成] をクリックします。

    表示されるオプションは、次のとおりです。

  • プロパティ スタブの生成

  • フィールド スタブの生成

  • メソッド スタブの生成

  • クラスの生成

  • 新しい型の生成 (クラス、構造体、インターフェイス、または列挙型)

イベント ハンドラーの生成

コード エディターで、IntelliSense はイベント フィールドにメソッド (イベント ハンドラー) をフックするのに役立ちます。

.cs ファイルのイベント フィールドの後に += 演算子を入力すると、IntelliSense では Tab キーを押すオプションの使用が求められます。 これで、イベントを処理するメソッドを示すデリゲートの新しいインスタンスを挿入します。

オート フック ボタン

Tab キーを押すと、IntelliSense は自動的にステートメントを完了し、コード エディターに選択されたテキストとしてイベント ハンドラーの参照を表示します。 自動イベント フックアップを完了するには、IntelliSense はイベント ハンドラーの空のスタブを作成するために、もう一度 Tab キーを押すように要求します。

イベント ハンドラーの作成

注意

IntelliSense によって作成された新しいデリゲートが既存のイベント ハンドラーを参照する場合、IntelliSense はヒントのこの情報と通信します。 その後、この参照を変更できます。テキストはコード エディターで既に選択されています。 それ以外の場合、自動イベント フックアップはこの時点で完了します。

Tab キーを押すと、IntelliSense は正しいシグネチャでメソッドをスタブして、イベント ハンドラーの本体にカーソルを置きます。

注意

[ビュー] メニュー (Ctrl + -) の [戻る] コマンドを使用して、イベント フックアップ ステートメントに戻ります。

関連項目

Visual Studio IDE