C# 中已篩選的完成清單
IntelliSense 是利用篩選條件將不必要的成員從完成清單中移除。
Visual C# 可篩選下列項目所顯示的完成清單:
介面和基底類別。
屬性
as 和 is 運算子。
Catch 子句。
物件初始設定式
String 物件
事件
介面和基底類別
IntelliSense 會在類別宣告基底與介面清單以及條件約束清單中,自動移除屬於介面與基底類別完成清單的項目。 例如,基底類別的完成清單中不會顯示列舉,這是因為列舉不能用於基底類別。 基底類別的完成清單僅包含介面和命名空間。 如果您在清單中選取項目並輸入逗號,IntelliSense 會從完成清單移除基底類別,因為 Visual C# 不支援多重繼承。 此外,條件約束子句也會發生相同的行為。
屬性
當您在型別上套用屬性時,完成清單會進行篩選,使得該清單中只會包括從含有這些型別之命名空間繼承而來的型別,例如 Attribute。
as 和 is 運算子
對於 as 運算子,IntelliSense 完成清單會進行篩選,如此一來在輸入 as 之後便只會顯示參考型別。 此外,當您輸入 as 或 is 關鍵字之後再按下空格鍵時,完成清單隨即會自動顯示。
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
};
}
}
上一個範例先建立了 Cust 類別,具有兩個自動實作的屬性。 當我們初始化 Name 屬性時,只有 Name 和 Age 會出現在完成清單中。 完成清單會篩選出與初始化物件無關的項目。 如需物件初始設定式的詳細資訊,請參閱物件和集合初始設定式 (C# 程式設計手冊)。
String 物件
使用 String 物件時,Visual C# 完成清單不會顯示來自 IEnumerable 介面的擴充方法。 執行這個動作是為了要隱藏常用型別的複雜性。
事件
當您輸入關鍵字 event (C# 參考) 時,完成清單只會包含委派型別。