Visual Studio での IntelliSense

IntelliSense とは、メンバーの一覧パラメーター ヒントクイック ヒント入力候補など多数の機能を含むコード補完機能です。 これらの機能により、使用中のコードに関する情報の確認、入力中のパラメーターの追跡、プロパティおよびメソッドの呼び出しの追加などが、わずかなキーストロークで可能になります。

IntelliSense には、言語によって異なる要素が多数あります。 各言語の IntelliSense の詳細については、「関連項目」セクションに示されているトピックを参照してください。

リスト メンバー

トリガーの文字 (マネージド コードではピリオド (.)、C++ では ::) を入力すると、型 (または名前空間) の有効なメンバーが一覧表示されます。 文字の入力を続けると、一覧にフィルターが適用され、その文字で始まるか、名前の中のいずれかの単語がその文字で始まるメンバーだけが含まれます。 IntelliSense は "キャメル ケース" 照合も実行します。メンバー内の各キャメル ケースの単語の最初の文字を入力するだけで、それに一致するメンバーが表示されます。

項目を選択した後、Tab キーを押すか空白を入力することによって、その項目をコードに挿入できます。 項目を選択してピリオドを入力した場合、項目がピリオドの前に表示され、ピリオドによって別のメンバー一覧が表示されます。 項目を選択した場合、挿入する前に、項目のクイック ヒントが表示されます。

メンバーの一覧で、左側にあるアイコンは、名前空間、クラス、関数、変数など、メンバーの種類を表します。 一覧が長い場合は、PageUp キーまたは PageDown キーを使用して、一覧内を上下に移動できます。

Visual Studio Member List

Screenshot of IntelliSense List Members feature.

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

既定でメンバーの一覧を無効にする (明確に指定しなければ表示されないようにする) には、[ツール]>[オプション]>[テキスト エディター]>[すべての言語] の順にクリックし、[自動メンバー表示] をオフにします。 特定の言語に対してのみメンバーの一覧を無効にするには、その言語の [全般] 設定で指定します。

入力したテキストのみがコードに挿入される提案モードに変更することもできます。 たとえば、一覧にない識別子を入力して Tab キーを押すと、完了モードでは、入力した識別子がエントリに置き換わります。 完了モードと提案モードを切り替えるには、Ctrl+Alt+Space キーを押すか、 [編集]>[IntelliSense]>[完了モードの切り替え] の順に選択します。

入力したテキストのみがコードに挿入される提案モードに変更することもできます。 たとえば、一覧にない識別子を入力して Tab キーを押すと、完了モードでは、入力した識別子がエントリに置き換わります。 補完モードと候補提示モードを切り替えるには、Ctrl+Alt+Space キーを押すか、[編集]>[IntelliSense]>[IntelliSense の自動補完とタブのみの補完を切り替える] の順に選択します。

パラメーター ヒント

パラメーター ヒントでは、メソッド、属性、ジェネリック型パラメーター (C#)、またはテンプレート (C++) で必要とされるパラメーターの数、名前、およびデータ型について情報を確認できます。

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

Parameter Info

Screenshot of IntelliSense Parameter Info feature.

関数やパラメーターに XML ドキュメント コメントによる注釈を付けると、そのコメントがパラメーター ヒントとして表示されます。 詳細については、XML コード コメントの追加に関するページを参照してください。

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

クイック ヒント

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

Visual Studio Quick Info

Screenshot of IntelliSense Quick Info feature.

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

Parameter Info in a C# code file

Screenshot of IntelliSense Quick Info & Parameter Info feature.

クイック ヒントを手動で起動するには、 [編集]>[IntelliSense]>[クイック ヒント] の順に選択するか、Ctrl+KCtrl+I キーを押すか、エディターのツール バーで [クイック ヒント] を選択します。

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

C++ コードのクイック ヒントをオフにするには、 [ツール]>[オプション]>[テキスト エディター]>[C/C++]>[詳細設定] の順に移動し、 [自動クイック ヒント]false に設定します。

入力候補

入力候補では、特定できる部分まで変数名、コマンド名、または関数名を入力すると、残りの部分が補完されます。 入力候補を起動するには、 [編集]>[IntelliSense]>[入力候補] の順に選択するか、Ctrl+Space キーを押すか、エディターのツール バーで [入力候補] を選択します。

IntelliSense オプション

IntelliSense オプションは、既定でオンになっています。 これらを無効にするには、[ツール][オプション][テキスト エディター][すべての言語] の順に進み、[パラメーター ヒント] をオフにするか、メンバーの一覧機能が不要であれば [自動メンバー表示] をオフにします。

ヒント

Visual Studio のユーザー インターフェイス要素の外観を変更するには、[ツール][オプション][環境][フォントおよび色] の順に進みます。 これらの設定とその操作方法の詳細については、「[フォントおよび色] ([オプション] ダイアログ ボックス - [環境])」を参照してください。

IntelliSense アイコン

IntelliSense のアイコンでは、アイコン修飾子を使用して追加の意味を伝えることができます。 これらはオブジェクトのアイコンの上に重ねられた星、ハート、およびロックであり、それぞれ、保護、内部、非公開を伝えるものです。

アイコン ユーザー補助 説明
Public Icon Modifier パブリック クラス アクセスは無制限です。
Protected Icon Modifier プロテクト クラス コンテナーであるクラスまたはそこから派生した型にアクセスが限定されます。
Protected Internal Icon Modifier 保護された内部クラス 現在のアセンブリ、または包含クラスから派生した型にアクセスが限定されます。
Internal Icon Modifier 内部クラス アクセスは現在のアセンブリに限定されます。
Private Icon Modifier 非公開クラス 包含クラス、または包含クラスから派生した型にアクセスが制限されます。 (C# 7.2 以降で使用可能)

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

IntelliSense オプションは、状況によっては意図どおりに機能しません。

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

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

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

MessageBox( hWnd, "String literal|")

自動オプションがオフになっている場合 既定では、IntelliSense は自動的に動作しますが、無効にすることもできます。 入力候補がオフになっている場合でも、IntelliSense 機能は起動できます。