共用方式為


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# 參考) 時,完成清單只會包含委派型別。

請參閱

概念

C# 中的完成清單

C# 中預先選取的完成清單項目

其他資源

Visual C# IntelliSense