C# IntelliSense は、言語固有のコード補完支援です。 これは、コード エディターで C# コードを記述し、[ イミディエイト モード ] コマンド ウィンドウでデバッグするときに使用できます。
入力候補リスト
C# の IntelliSense 入力候補リストには、リスト メンバー、完全な Word などのトークンが含まれています。 次の機能にすばやくアクセスできます。
型または名前空間のメンバー
変数、コマンド、関数の名前
コード断片
言語キーワード
拡張メソッド
C# の完了リストでは、コンテキストに基づいて無関係なトークンと事前選択トークンが除外されます。 詳細については、「 フィルター処理された完了リスト」を参照してください。
入力候補リストのコード スニペット
C# では、完了リストには、定義済みのコード本体をプログラムに簡単に挿入するのに役立つコード スニペットが含まれています。 コード スニペットは、スニペットの ショートカット テキストとして入力候補リストに表示されます。 既定で C# で使用できるコード スニペットの詳細については、 C# コード スニペットに関するページを参照してください。
入力候補リストの言語キーワード
入力候補リストには、プログラムに挿入するのに役立つ C# 言語キーワードが含まれています。 C# 言語キーワードの詳細については、 C# キーワードを参照してください。
入力候補一覧の拡張メソッド
C# では、完了リストにはスコープ内にある拡張メソッドが含まれています。
拡張メソッドでは、インスタンス メソッドとは異なるアイコンが使用されます。 インスタンス メソッドと同じ名前の拡張メソッドの両方がスコープ内にある場合、完了リストに拡張メソッド アイコンが表示されます。
注
Stringオブジェクトの場合、完了リストにすべての拡張メソッドが表示されるわけではありません。
フィルター処理された完了リスト
IntelliSense は、フィルターを使用して、不要なメンバーを完了リストから削除します。 C# は、次の項目に表示される入力候補リストをフィルター処理します。
インターフェイスと基底クラス: IntelliSense は、インターフェイスと基底クラスの入力候補リストから不要な項目を自動的に削除します。この削除には、クラス宣言ベース、およびインターフェイス リストと制約リストが含まれます。 たとえば、列挙型は基底クラスでは使用できないため、列挙型は基底クラスの入力候補一覧に表示されません。 基底クラスの完了リストには、インターフェイスと名前空間のみが含まれています。 リスト内の項目を選択し、コンマ キーを入力すると、IntelliSense によって入力候補リストから基底クラスが削除されます。 これは、C# が複数の継承をサポートしていないためです。 制約句でも同じ動作が発生します。
属性: 型に属性を適用すると、入力候補リストがフィルター処理され、それらの型を含む名前空間から派生した型のみがリストに含まれるようにします。 たとえば、Attribute のようにします。
Catch 句: 有効な try-catch キーワードのみが完了リストに表示されます。
オブジェクト初期化子: 初期化できるメンバーのみが完了リストに表示されます。
new キーワード:
new入力してから Space キーを押すと、入力候補リストが表示されます。 IntelliSense は、コード内のコンテキストに基づいて、リスト内の項目を自動的に選択します。 たとえば、IntelliSense は、宣言やメソッド内の return ステートメントの入力候補一覧の項目を自動的に選択します。enum キーワード: 列挙型の割り当ての等号の後に Space キーを押すと、完了リストが表示されます。 IntelliSense は、コード内のコンテキストに基づいて、リスト内の項目を自動的に選択します。 たとえば、IntelliSense では、
returnキーワードを入力した後、宣言を行うと、入力候補一覧の項目が自動的に選択されます。as 演算子と is 演算子: または
asキーワードを入力した後にisキーを押すと、IntelliSense によってフィルター処理された入力候補リストが自動的に表示されます。イベント: キーワード
eventを入力すると、完了リストにはデリゲート型のみが含まれます。パラメーターヘルプ: IntelliSense は、入力時にパラメーターに一致する最初のメソッド オーバーロードに自動的に並べ替えます。 複数のメソッド オーバーロードが使用可能な場合は、上矢印と下矢印を使用して、一覧の次に考えられるオーバーロードに移動できます。
最近使用されたメンバー
IntelliSense は、オブジェクト名の自動入力候補のポップアップ リスト メンバー ボックスで最近選択した メンバー を記憶します。 次回 メンバー リストを使用すると、最近使用したメンバーが上部に表示されます。 IntelliSense は、各 Visual Studio セッション間で最近使用されたメンバーの履歴をクリアします。
オーバーライド
オーバーライドを入力してから Space キーを押すと、IntelliSense によって、ポップアップ リスト ボックスでオーバーライドできる有効な基底クラスメンバーがすべて表示されます。
override後にメソッドの戻り値の型を入力すると、同じ型を返すメソッドのみを表示するように IntelliSense に求められます。 IntelliSense で一致が見つからない場合は、すべての基底クラスメンバーが表示されます。
AI によって強化された IntelliSense
Visual Studio IntelliCode には、人工知能が強化された IntelliSense 入力候補リストが用意されています。 IntelliCode は、メンバーのアルファベット順の一覧を表示するのではなく、使用する可能性が最も高い正しい API を予測します。 現在のコード コンテキストとパターンを使用して動的リストを提供します。
コードの自動生成
使用して追加する
IntelliSense を使用した追加 操作では、必要な using ディレクティブがコード ファイルに自動的に追加されます。 この機能を使用すると、コードの別の部分にフォーカスを移す必要はなく、記述しているコードにフォーカスを維持できます。
Add using 操作を開始するには、解決できない型参照にカーソルを置いてください。 たとえば、コンソール アプリケーションを作成し、XmlReader メソッドの本体にMainを追加すると、型参照を解決できないため、そのコード行に赤い波線が表示されます。 その後、[クイック アクション] メニューから [追加] 操作を呼び出すことができます。
using <namespace> メニュー項目は、カーソルが未解決の参照に配置されている場合にのみ表示されます。
この例では、 using ディレクティブをコードに自動的に追加するには、エラー電球アイコンを選択し、 System.Xml の使用を選択します。
貼り付け時に不足している using ディレクティブを追加する
IntelliSense では、コード ファイルに型を貼り付けると、不足している using ディレクティブをコードに自動的に追加できます。 この機能は、型をファイルに貼り付けるときに、不足している using ディレクティブを追加するタスクを自動化することで、時間を節約します。
この機能を有効にするには:
- >。
- テキスト エディター>C# (または Visual Basic) >左側のウィンドウから [追加] を選択します。
- [ Using Directives]\(ディレクティブの使用\) で、[ 貼り付け時に不足している using ディレクティブを追加する] を選択します。
using の削除と並べ替え
Remove and Sort Usings オプションは、ソース コードの動作を変更せずに、 using および extern 宣言の並べ替えと削除を行います。 時間が経つとともに、不要で整理されていない using ディレクティブが原因で、ソース ファイルが大きくなりすぎて読みにくくなる可能性があります。
Remove and Sort Usings オプションは、未使用のusing ディレクティブを削除してソース コードを圧縮し、それらを並べ替えることで読みやすさを向上させます。
このオプションを使用するには、メニュー バーから [Edit>IntelliSense>Sort Usings を選択するか、コード エディターで右クリックして [Remove and Sort Usings] を選択します。
インターフェイスを実装する
IntelliSense には、コード エディターでの作業中に インターフェイス を実装するのに役立つオプションが用意されています。 通常、インターフェイスを適切に実装するには、クラス内のインターフェイスのすべてのメンバーに対してメソッド宣言を作成する必要があります。 クラス宣言でインターフェイスの名前を入力すると、IntelliSense に クイック アクション 電球が表示されます。 電球は、明示的または暗黙的な名前付けを使用して、インターフェイスを自動的に実装するオプションを提供します。 明示的な名前付けの下で、メソッド宣言はインターフェイスの名前を持ちます。 暗黙的な名前付けでは、メソッド宣言は、それらが属するインターフェイスを示しません。 明示的な名前付きインターフェイス メソッドには、インターフェイス インスタンスを介してのみアクセスでき、クラス インスタンスを介してアクセスすることはできません。 詳細については、「 明示的なインターフェイスの実装」を参照してください。
インターフェイスを実装すると、インターフェイスを満たすために必要なメソッド スタブの最小数が生成されます。 基底クラスがインターフェイスの一部を実装する場合、それらのスタブは再生成されません。
抽象基本クラスを実装する
IntelliSense には、コード エディターでの作業中に抽象基本クラスのメンバーを自動的に実装するのに役立つオプションが用意されています。 通常、抽象基底クラスのメンバーを実装するには、派生クラスの抽象基底クラスの各メソッドに対して新しいメソッド定義を作成する必要があります。 クラス宣言で抽象基本クラスの名前を入力すると、IntelliSense に クイック アクション 電球が表示されます。 電球を使用すると、基底クラスのメソッドを自動的に実装できます。
抽象基本クラスの実装機能によって生成されるメソッド スタブは、MethodStub.snippet ファイルで定義されているコード スニペットによってモデル化されます。 コード スニペットは変更可能です。 詳細については、「 チュートリアル: Visual Studio でコード スニペットを作成する」を参照してください。
使用状況から生成する
[ 使用法から生成 ] 機能を使用すると、クラスとメンバーを定義する前に使用できます。 使用するが定義されていないクラス、コンストラクター、メソッド、プロパティ、フィールド、または列挙型のスタブを生成できます。 コード内の現在の場所を離れることなく、新しい型とメンバーを生成できます。 これにより、ワークフローの中断が最小限に抑えられます。
未定義の各識別子の下に赤い波線が表示されます。 識別子にマウス ポインターを置くと、ヒントにエラー メッセージが表示されます。 適切なオプションを表示するには、次のいずれかの手順を実行します。
未定義の識別子を選択します。 識別子の下に クイック アクション のエラー電球が表示されます。 エラー電球を選択します。
未定義の識別子を選択し、+ (.) キーを押します。
未定義の識別子を右クリックし、[ クイック アクションとリファクタリング] を選択します。
次のオプションが表示されます。
Generate プロパティ
フィールドの生成
Generate メソッド
クラスの生成
新しい型を生成 する (クラス、構造体、インターフェイス、または列挙型の場合)
イベント ハンドラーを生成する
コード エディターでは、IntelliSense を使用してメソッド (イベント ハンドラー) をイベント フィールドにフックできます。
.cs ファイル内のイベント フィールドの後に+=演算子を入力すると、IntelliSense によって Tab キーを押すオプションが表示されます。 これにより、イベントを処理するメソッドを指すデリゲートの新しいインスタンスが挿入されます。
Tab キーを押すと、IntelliSense によって自動的にステートメントが終了し、コード エディターで選択したテキストとしてイベント ハンドラー参照が表示されます。 自動イベント フックアップを完了するために、IntelliSense は Tab キーをもう一度押して、イベント ハンドラー用の空のスタブを作成するように求められます。
Tab キーをもう一度押すと、IntelliSense は正しいシグネチャを持つメソッド スタブを追加し、イベント ハンドラーの本文にカーソルを置きます。
IntelliSense によって作成された新しいデリゲートが既存のイベント ハンドラーを参照する場合、IntelliSense はツールヒントでこの情報を伝えます。 その後、この参照を変更できます。テキストはコード エディターで既に選択されています。 それ以外の場合は、イベントの自動フックアップが完了しました。
注
[表示] メニューの [戻る] コマンド (Ctrl+-) を使用して、イベント フックアップ ステートメントに戻ります。