C# でフィルタ処理されたコンプリート リスト
更新 : 2007 年 11 月
IntelliSense では、フィルタを使用して、不要なメンバをコンプリート リストから削除します。
Visual C# では、次の項目用に表示されるコンプリート リストをフィルタ処理します。
インターフェイスおよび基本クラス
属性
as 演算子および is 演算子
Catch 句
オブジェクト初期化子
String オブジェクト
イベント
インターフェイスおよび基本クラス
IntelliSense では、クラス宣言の基本およびインターフェイス リストおよび制約リストの両方で、インターフェイスおよび基本クラスのコンプリート リストから項目を自動的に削除します。たとえば、列挙型は基本クラスのコンプリート リストには表示されません。これは、列挙型が基本クラスで使用できないためです。基本クラスのコンプリート リストには、インターフェイスおよび名前空間だけが含まれます。リストで項目を選択し、コンマを入力すると、コンプリート リストから基本クラスが削除されます。これは、Visual C# では多重継承がサポートされていないためです。制約句の場合も、同様の動作になります。
属性
属性を型に適用した場合、コンプリート リストはフィルタ処理され、Attribute などそれらの型を含む名前空間からの型だけがリストに含まれます。
as 演算子と is 演算子
as 演算子の場合、as を入力すると、参照型だけが表示されるように、IntelliSense コンプリート リストがフィルタ処理されます。また、as キーワードまたは is キーワードを入力してから Space キーを押すと、コンプリート リストが自動的に表示されます。
Catch 句
catch の場合、IntelliSense コンプリート リストには、関連する型だけが表示されます。たとえば、Exception から派生した型、入れ子にされた型を含む型、Exception から派生した型で制約された型などがあります。
オブジェクト初期化子
初期化できるメンバだけがコンプリート リストに表示されます。次に例を示します。
class Cust
{
public string Name { get; set; }
public int Age { get; set; }
}
class MyApp
{
static void Main()
{
var customer = new Cust()
{
//Name and Age appear in completion list
Name = "Sally",
//Only Age appears in completion list
Age = 30
};
}
}
前述の例では、2 つの自動実装プロパティを持つ Cust クラスを最初に作成します。Name プロパティを初期化するときには、Name および Age だけがコンプリート リストに表示されます。コンプリート リストでは、オブジェクトの初期化に関係しないエントリが除外されます。オブジェクト初期化子の詳細については、「オブジェクト初期化子とコレクション初期化子 (C# プログラミング ガイド)」を参照してください。
String オブジェクト
String オブジェクトを使用すると、Visual C# コンプリーション リストに IEnumerable インターフェイスからの拡張メソッドが表示されません。これは、頻繁に使用される型での複雑性を隠すために行われます。
イベント
キーワード event (C# リファレンス) を入力した場合、コンプリート リストにはデリゲート型のみが含まれます。