Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
C# IntelliSense — это помощь по завершению кода на языке. Он доступен при написании кода C# в редакторе кода и отладке его в командном окне режима интерпретации .
Списки завершения
Списки завершения IntelliSense в C# содержат маркеры из элементов списка, Complete Word и многое другое. Он предоставляет быстрый доступ к:
Элементы типа или пространства имен
Переменные, команды и имена функций
Фрагменты кода
Ключевые слова языка
Методы расширения
Списки завершения в C# отфильтровывают неуместные маркеры и маркеры предварительного выбора на основе контекста. Дополнительные сведения см. в разделе "Отфильтрованные списки завершения".
Фрагменты кода в списках завершения
В C# список завершения включает фрагменты кода, которые помогут вам легко вставлять предопределенные тела кода в программу. Фрагменты кода отображаются в списке завершения в виде контекстного текста фрагмента кода. Дополнительные сведения о фрагментах кода, доступных в C# по умолчанию, см. в фрагментах кода C#.
Ключевые слова языка в списках завершения
Список завершения включает ключевые слова языка C#, которые помогут вам вставить их в программу. Дополнительные сведения о ключевых словах языка C# см. в ключевых словах C#.
Методы расширения в списках завершения
В C# список завершения включает методы расширения, которые находятся в области.
Методы расширения используют значок, отличный от методов экземпляра. Если метод экземпляра и метод расширения с одинаковым именем находятся в области, список завершения отображает значок метода расширения.
Замечание
Для String объектов список завершения не отображает все методы расширения.
Отфильтрованные списки завершения
IntelliSense удаляет ненужные элементы из списка завершения с помощью фильтров. C# фильтрует списки завершения, которые отображаются для следующих элементов:
Интерфейсы и базовые классы: IntelliSense автоматически удаляет ненужные элементы из списков завершения интерфейса и базового класса, это удаление включает базы объявлений классов, списки интерфейсов и списки ограничений. Например, перечисления не отображаются в списке завершения для базовых классов, так как перечисления не могут использоваться для базовых классов. Список завершения базовых классов содержит только интерфейсы и пространства имен. Если выбрать элемент в списке и ввести ключ запятой, IntelliSense удаляет базовые классы из списка завершения. Это делается, так как C# не поддерживает несколько наследование. То же поведение также происходит для предложений ограничений.
Атрибуты. При применении атрибута к типу список завершения фильтруется таким образом, чтобы список содержал только те типы, которые спускаются от пространств имен, содержащих эти типы. Например: Attribute.
Предложения Catch: в списке завершения отображаются только допустимые ключевые слова try-catch.
Инициализаторы объектов: в списке завершения отображаются только элементы, которые можно инициализировать.
новое ключевое слово: при вводе
newи нажатии клавиши ПРОБЕЛ появляется список завершения. IntelliSense автоматически выбирает элемент в списке на основе контекста в коде. Например, IntelliSense автоматически выбирает элементы в списке завершения для объявлений и возвращаемых инструкций в методах.ключевое слово перечисления: при нажатии клавиши ПРОБЕЛ после знака равенства для назначения перечисления появится список завершения. IntelliSense автоматически выбирает элемент в списке на основе контекста в коде. Например, IntelliSense автоматически выбирает элементы в списке завершения после ввода ключевого
returnслова и при объявлении.как и операторы: IntelliSense автоматически отображает отфильтрованный список завершения при нажатии клавиши ПРОБЕЛ после ввода ключевого слова или
asключевогоisслова.События. При вводе ключевого слова
eventсписок завершения содержит только типы делегатов.Справка по параметру: IntelliSense автоматически сортирует по первой перегрузке метода, которая соответствует параметрам при вводе. Если доступны перегрузки нескольких методов, можно использовать стрелки вверх и вниз, чтобы перейти к следующей возможной перегрузке в списке.
Последние использованные элементы
IntelliSense запоминает элементы, которые вы недавно выбрали в диалоговом окне " Элементы списка" для автоматического завершения имени объекта. При следующем использовании списка участников вверху отображаются последние использованные элементы. IntelliSense очищает журнал последних использованных элементов между каждым сеансом Visual Studio.
переопределение
При вводе переопределения и нажатии клавиши ПРОБЕЛ IntelliSense отображает все допустимые элементы базового класса, которые можно переопределить во всплывающем списке. Ввод возвращаемого типа метода после override запроса IntelliSense для отображения только методов, возвращающих тот же тип. Если IntelliSense не удается найти совпадения, он отображает все члены базового класса.
IntelliSense с поддержкой искусственного интеллекта
Visual Studio IntelliCode предоставляет расширенные списки завершения IntelliSense с искусственным интеллектом. IntelliCode прогнозирует наиболее вероятный правильный API для использования, а не просто представить алфавитный список членов. Он использует текущий контекст кода и шаблоны для предоставления динамического списка.
Автоматическое создание кода
Добавление с помощью
Операция Add using IntelliSense автоматически добавляет необходимые using директивы в файл кода. Эта функция позволяет поддерживать фокус на коде, который вы пишете, а не требовать переключения фокуса на другую часть кода.
Чтобы инициировать операцию "Добавить с помощью" , поместите курсор на ссылку типа, которая не может быть разрешена. Например, при создании консольного приложения и последующем добавлении XmlReader в текст Main метода красная строка волнистой линии отображается в этой строке кода, так как ссылка на тип не может быть разрешена. Затем можно вызвать операцию "Добавить с помощью " в меню "Быстрые действия ". Элемент меню "Пространство имен<" > отображается только в том случае, если курсор находится в неразрешенной ссылке.
В этом примере для автоматического добавления директивы using в код выберите значок лампочки ошибки, а затем выберите system.Xml;.
Добавление отсутствующих директив using для вставки
IntelliSense может автоматически добавлять отсутствующие using директивы в код при вставе типа в файл кода. Эта функция экономит время, автоматив задачу добавления отсутствующих директив using при вставки типа в файл.
Чтобы включить эту функцию, выполните приведенные ниже действия.
- Последовательно выберите пункты Инструменты>Параметры.
- Выберите текстовый редактор>C# (или Visual Basic) >Дополнительно на левой панели.
- В разделе "Директивы using" выберите "Добавить отсутствующие директивы using" для вставки.
Удаление и сортировка с помощью
Параметр Remove and Sort Usings сортирует и удаляет using и extern объявления без изменения поведения исходного кода. Со временем исходные файлы могут стать слишком большими и сложными для чтения из-за ненужных и неорганизованных using директив. Параметр Remove and Sort Usings сжимает исходный код, удаляя неиспользуемые using директивы, и улучшает удобочитаемость путем их сортировки.
Чтобы использовать этот параметр, выберите "Изменить>параметры сортировки> Usings" в строке меню или щелкните правой кнопкой мыши редактор кода и выберите "Удалить и отсортировать с помощью".
Реализация интерфейса
IntelliSense предоставляет возможность реализовать интерфейс во время работы в редакторе кода. Как правило, для правильной реализации интерфейса необходимо создать объявление метода для каждого члена интерфейса в классе. После ввода имени интерфейса в объявлении класса IntelliSense отображает лампочку быстрых действий . Лампочка позволяет реализовать интерфейс автоматически, используя явное или неявное именование. При явном именовании объявления метода несут имя интерфейса. В неявном именовании объявления метода не указывают интерфейс, к которому они относятся. К методу явно именованного интерфейса можно обращаться только через экземпляр интерфейса, а не через экземпляр класса. Дополнительные сведения см. в разделе "Явная реализация интерфейса".
Реализация интерфейса создает минимальное количество заглушки методов, необходимых для удовлетворения интерфейса. Если базовый класс реализует части интерфейса, эти заглушки не будут повторно созданы.
Реализация абстрактного базового класса
IntelliSense предоставляет возможность реализовать элементы абстрактного базового класса автоматически при работе в редакторе кода. Как правило, для реализации членов абстрактного базового класса требуется создать новое определение метода для каждого метода абстрактного базового класса в производном классе. После ввода имени абстрактного базового класса в объявлении класса IntelliSense отображает лампочку быстрых действий . Лампочка дает возможность автоматически реализовать методы базового класса.
Заглушки метода, созданные функцией "Реализация абстрактного базового класса ", моделиируются фрагментом кода, определенным в файле MethodStub.snippet. Фрагменты кода изменяются. Дополнительные сведения см. в пошаговом руководстве. Создание фрагмента кода в Visual Studio.
Создание из использования
Функция "Создание из использования" позволяет использовать классы и члены перед их определением. Вы можете создать заглушку для любого класса, конструктора, метода, свойства, поля или перечисления, которые вы хотите использовать, но не определены. Вы можете создавать новые типы и элементы, не покидая текущее расположение в коде. Это позволяет свести к минимуму прерывание рабочего процесса.
Красная линия волнистой линии отображается под каждым неопределенным идентификатором. При наведении указателя мыши на идентификатор сообщение об ошибке появляется в подсказке. Чтобы отобразить соответствующие параметры, используйте одну из следующих процедур:
Выберите неопределенный идентификатор. Под идентификатором отображается лампочка " Быстрые действия ". Выберите лампочку ошибки.
Выберите неопределенный идентификатор и нажмите клавиши CTRL+Period (.).
Щелкните правой кнопкой мыши неопределенный идентификатор, а затем выберите быстрые действия и рефакторинг.
Могут появиться следующие параметры:
Создание свойства
Создание поля
Создание метода
Создание класса
Создание нового типа (для класса, структуры, интерфейса или перечисления)
Создание обработчиков событий
В редакторе кода IntelliSense может помочь подключить методы (обработчики событий) к полям событий.
При вводе += оператора после поля события в файле .cs IntelliSense предложит нажать клавишу TAB . При этом вставляется новый экземпляр делегата, указывающий на метод обработки события.
Если нажать клавишу TAB , IntelliSense автоматически завершает инструкцию и отображает ссылку обработчика событий в виде выделенного текста в редакторе кода. Чтобы завершить автоматическое перехват событий, IntelliSense предложит снова нажать клавишу TAB , чтобы создать пустую заглушку для обработчика событий.
При повторном нажатии клавиши TAB IntelliSense добавляет заглушку метода с правильной подписью и помещает курсор в текст обработчика событий.
Если новый делегат, созданный IntelliSense, ссылается на существующий обработчик событий, IntelliSense передает эти сведения в подсказке. Затем эту ссылку можно изменить; Текст уже выбран в редакторе кода. В противном случае автоматическое перехват событий завершено.
Замечание
Чтобы вернуться к инструкции перехватчика событий, используйте команду "Перейти назад " в меню "Вид " (CTRL+-).