Visual Studio の IntelliSense

IntelliSense は、使用しているコードの詳細を確認し、入力したパラメーターを追跡し、少数のキーストロークでプロパティとメソッドへの呼び出しを追加するのに役立つ機能を含むコード補完の支援です。

次のような機能があります。

IntelliSense の多くの側面は言語固有です。 さまざまな言語の IntelliSense の詳細については、「 関連コンテンツ 」セクションに記載されている記事を参照してください。

IntelliSense に加えて、Visual Studio では GitHub Copilot を介して AI を利用したコード補完が提供されます。 Copilot のインライン候補は、IntelliSense と連携して、行全体や複数行の入力補完を提供します。 IntelliSense がアクティブな場合、Copilotの入力候補は一時的に抑制されるため、IntelliSense の一覧にフォーカスできます。 IntelliSense の選択を閉じるかコミットすると、Copilotの入力候補が自動的に再開されます。 詳細については、GitHub Copilot 補完の概要をご覧ください。

IntelliSense に加えて、Visual Studio では GitHub Copilot を介して AI を利用したコード補完が提供されます。 Copilot のインライン候補は、IntelliSense と連携して、行全体や複数行の入力補完を提供します。 詳細については、GitHub Copilot 補完の概要をご覧ください。

メンバー一覧表示

マネージド コードのピリオド (.) や C++ の :: など、トリガー文字を入力すると、型または名前空間の有効なメンバーの一覧が表示されます。 文字を入力し続ける場合、リストはそれらの文字で始まるメンバー、または名前内の 単語 の先頭がそれらの文字で始まるメンバーのみを含むようにフィルター処理します。 IntelliSense では キャメル ケース マッチングも実行されるため、メンバー名に各キャメルケースの単語の最初の文字だけを入力して一致を確認できます。

項目を選択した後は、 Tab キーを押すか、スペースを入力してコードに挿入できます。 項目を選択して期間を入力すると、項目の後にピリオドが表示され、別のメンバー リストが表示されます。 項目を選択したが、挿入する前にアイテムの クイック ヒント が表示されます。

メンバー リストの左側のアイコンは、名前空間、クラス、関数、変数などのメンバー型を表します。 リストが長い場合があるため、 PgUpPgDn を押してリスト内を上下に移動できます。

IntelliSense リスト メンバー機能のスクリーンショット。

Ctrl+J キーを押すか、編集>IntelliSense>List メンバーを選択するか、エディター ツール バーの [メンバーの一覧表示] ボタンをクリックして、リスト メンバー機能を手動で呼び出すことができます。 空白行または認識可能なスコープ外で呼び出すと、グローバル名前空間のシンボルが一覧に表示されます。

明示的に呼び出されない限り表示されないように、リスト メンバーを既定でオフにするには、[ ツール>オプション>テキスト エディター>すべての言語 に移動し、 自動リスト メンバーの選択を解除します。 特定の言語に対してのみ [メンバーの一覧表示] をオフにするには、その言語の [全般 ] 設定に移動します。

明示的に呼び出されない限りリスト メンバーが表示されないように、既定でリスト メンバーをオフにするには、[ ツール>Options>Languages>Defaults>General>Statement Completion に移動し、 自動リスト メンバーの選択を解除します。 特定の言語に対してのみ [メンバーの一覧表示] をオフにするには、その言語の [全般 ] 設定に移動します。

入力したテキストのみがコードに挿入される検索候補モードに変更することもできます。 たとえば、リストにない識別子を入力し、 Tab キーを押すと、入力完了モードで入力された識別子が置き換えられます。 入力モードと提案モードを切り替えるには、Ctrl+Alt+Space キーを押すか、編集>IntelliSense>の中から「自動入力候補とタブ専用入力候補を切り替える」を選択します。

パラメーター情報

パラメーター情報 には、メソッド、属性ジェネリック型パラメーター (C#)、またはテンプレート (C++ の場合) に必要なパラメーターの数、名前、型が表示されます。

太字のパラメーターは、関数を入力するときに必要な次のパラメーターを示しています。 オーバーロードされた関数の場合は、 方向キーと 方向キーを使用して、関数オーバーロードの他のパラメーター情報を表示します。

IntelliSense パラメーター情報機能のスクリーンショット。

関数とパラメーターに XML ドキュメント コメントを追加すると、パラメーター情報にそれらのコメントが表示されます。 詳細については、「 XML コード コメントを指定する」を参照してください。

手動でパラメーター情報を開くには、 編集>IntelliSense>パラメーター情報を選択するか、 Ctrl+Shift+Space キーを押すか、エディター ツール バーの [パラメーター情報] ボタンをクリックします。

クイック情報

クイック ヒント には、コード内の識別子の完全な宣言が表示されます。

IntelliSense クイック ヒント機能のスクリーンショット。

[メンバーの一覧] ボックスからメンバーを選択すると、クイック ヒントも表示されます。

IntelliSense クイック ヒントとパラメーター情報機能のスクリーンショット。

クイック ヒントを手動で呼び出すには、編集>IntelliSense>Quick InfoCtrl キー+K キー、Ctrl キー+I キーを押すか、エディター ツール バーの [クイック ヒント] ボタンをクリックします。

関数がオーバーロードされている場合、IntelliSense ではオーバーロードのすべての形式の情報が表示されない場合があります。

クイック ヒントをオフにするには、[ツール>オプション>テキスト エディター>[すべての言語] に移動し、[設定] セクションのホバー時にクイック ヒントの表示を選択解除します。

クイック ヒントをオフにするには、[ツール>オプション>言語] に移動し、[全般] セクションでホバー時にクイック ヒントの表示を選択解除します。

Word の完成

Complete Word は、曖昧さを解消するために十分な文字を入力後、変数、コマンド、または関数名の残りの部分が補完されます。 [>> を選択するか、Ctrl+ キーを押すか、エディター ツール バーの [完全な Word] ボタンを選択して、完全な Word を呼び出すことができます。

IntelliSense オプション

IntelliSense オプションは既定でオンになっています。

オフにするには、 Tools>Options>Languages>Defaults>General>Statement Completion に移動し、 パラメーター情報 または 自動リスト メンバーの選択を解除します。

オフにするには、[ ツール>オプション>テキスト エディター>すべての言語 に移動し、[ パラメーター情報] または [メンバーの自動リスト] の選択を解除します。

ヒント

Visual Studio でユーザー インターフェイス要素の外観を変更するには、 Tools>Options>Environment>Fonts および Colors に移動します。 これらの設定とその操作方法の詳細については、「 フォントと色、環境、オプション」ダイアログ ボックスを参照してください。

IntelliSense アイコン

IntelliSense のアイコンは、アイコン修飾子を使用して追加の意味を伝えます。 これらのアイコンには、保護、内部、またはプライベートをそれぞれ伝えるオブジェクトのアイコンの上に重ねられた星、ハート、ロックが含まれます。

Icon Accessibility Description
パブリック アイコン修飾子 パブリック クラス アクセスは制限されません。
保護されたアイコン修飾子 保護されたクラス Access は、包含クラスまたは包含クラスから派生した型に制限されます。
保護された内部アイコン修飾子 保護された内部クラス Access は、現在のアセンブリまたは包含クラスから派生した型に制限されます。
内部アイコン修飾子 内部クラス アクセスは現在のアセンブリに制限されます。
プライベート アイコン修飾子 プライベート クラス Access は、現在のアセンブリ内の包含クラスから派生した包含クラスまたは型に制限されます。 (C# 7.2 以降で使用可能)。
Icon Accessibility Description
パブリック アイコン修飾子 パブリック クラス アクセスは制限されません。
保護されたアイコン修飾子 保護されたクラス Access は、包含クラスまたは包含クラスから派生した型に制限されます。
保護された内部アイコン修飾子 保護された内部クラス Access は、現在のアセンブリまたは包含クラスから派生した型に制限されます。
内部アイコン修飾子 内部クラス アクセスは現在のアセンブリに制限されます。
プライベート アイコン修飾子 プライベート クラス Access は、現在のアセンブリ内の包含クラスから派生した包含クラスまたは型に制限されます。 (C# 7.2 以降で使用可能)。

IntelliSense のトラブルシューティング

IntelliSense オプションは、特定のケースで想定どおりに機能しない場合があります。

  • カーソルがコード エラーの下にあります。IntelliSense がコード要素を解析できない可能性があるため、カーソルの上のコードに不完全な関数またはその他のエラーが存在する場合は、IntelliSense を使用できない可能性があります。 この問題は、該当するコードをコメント アウトすることで解決できます。

  • カーソルがコード コメント内にあります。ソース ファイル内のコメントにカーソルがある場合、IntelliSense を使用することはできません。

  • カーソルが文字列リテラル内にあります。次の例に示すように、カーソルが文字列リテラルを囲む引用符内にある場合、IntelliSense を使用することはできません。

    MessageBox( hWnd, "String literal|")
    
  • 自動オプションはオフになっています。既定では、IntelliSense は自動的に動作しますが、無効にすることはできます。 自動ステートメント補完が無効になっている場合でも、IntelliSense 機能を呼び出すことができます。