Поделиться через


Фильтрованные списки завершения в C#

При помощи фильтров IntelliSense удаляет ненужные члены из списка завершения.

В Visual C# фильтруются списки завершения для следующих элементов:

  • Интерфейсы и базовые классы.

  • Атрибуты.

  • Операторы as и is.

  • Предложения "catch".

  • Инициализаторы объектов

  • События

Интерфейсы и базовые классы

IntelliSense автоматически удаляет элементы из списков завершения интерфейсов и базовых классов (включая как базовые списки объявления классов, так и списки интерфейсов).Например, перечисления не отображаются в списке завершения для базовых классов, так как перечисления для базовых классов не используются.Список завершения базовых классов содержит только интерфейсы и пространства имен.Если в списке выбрать элемент и затем ввести запятую, IntelliSense удалить базовый класс из списка завершения, поскольку Visual C# не поддерживает множественное наследование.Такое же поведение наблюдается у предложений ограничения.

Атрибуты

При применении атрибута к типу список завершения фильтруется таким образом, что содержит только типы, полученные из пространств имен с этими типами, например Attribute.

Операторы "as" и "is"

Отфильтрованный список завершения отображается автоматически при нажатии клавиши ПРОБЕЛ после введенного as OR 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#).

События

Если набрать ключевое слово event (Справочник по C#), в списке завершения будут содержаться только типы делегата.

См. также

Основные понятия

Списки завершения в C#

Заранее выбранные элементы списков завершения в C#

Другие ресурсы

IntelliSense для Visual C#