«Параметры», «Текстовый редактор», C#, IntelliSense
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Страница IntelliSense служит для изменения параметров, влияющих на поведение IntelliSense для C#. Для доступа к этой странице параметров выберите Сервис>Параметры и затем Текстовый редактор>C#>IntelliSense.
Страница IntelliSense содержит следующие параметры:
Списки завершения
- Показывать список завершения после ввода знака* Если этот параметр выбран, IntelliSense автоматически отображает список завершения при начале ввода. Если этот параметр не выбран, функцию завершения IntelliSense можно вызвать из меню IntelliSense или с помощью сочетания клавиш CTRL+ПРОБЕЛ.
- Показывать список завершения после удаления знака
- Выделять совпадающие части элементов списка завершения
- Показывать фильтры элементов завершения
Поведение фрагментов кода
- Никогда не включать фрагменты кода Если этот параметр выбран, IntelliSense не добавляет псевдонимы для фрагментов кода C# в список завершения.
- Всегда включать фрагменты кода Если этот параметр выбран, IntelliSense добавляет псевдонимы для фрагментов кода C# в список завершения. Если псевдоним фрагмента кода совпадает с ключевым словом, например class, оно заменяется ярлыком. Дополнительные сведения см. в описании фрагментов кода C#.
- Включать фрагменты кода, когда после идентификатора указывается «?-Tab» Если этот параметр выбран, IntelliSense добавляет псевдонимы для фрагментов кода C# в список завершения при нажатии клавиш ?+TAB после идентификатора.
Поведение при нажатии клавиши ВВОД
- Никогда не добавлять символ новой строки при нажатии клавиши ВВОД Указывает, что, когда вы выбираете элемент в списке завершения и нажимаете клавишу ВВОД, новая строка не добавляется автоматически.
- Добавлять новую строку при нажатии клавиши ВВОД только в конце полностью введенного слова Указывает, что если вы вводите все символы для записи в списке завершения и нажимаете клавишу ВВОД, то автоматически добавляется новая строка, а курсор перемещается на новую строку. Например, если ввести else и нажать клавишу ВВОД, в редакторе появится следующее: else | (положение курсора) Однако, если ввести только el и нажать клавишу ВВОД, в редакторе появится следующее: else| (положение курсора)
- Всегда добавлять символ новой строки при нажатии клавиши ВВОД Указывает, что если вы вводите какие-либо символы для записи в списке завершения и нажимаете клавишу ВВОД, то автоматически добавляется новая строка, а курсор перемещается на новую строку.
Показывать варианты имен
Выполняет автоматическое завершение имени объекта для элементов, которые вы выбирали недавно.
См. также
- Страница «Общие», папка «Среда», диалоговое окно «Параметры»
- Using IntelliSense
Как включить intellisense в visual studio 2019
Я только что загрузил код Visual Studio, и мой Intellisense не работает автоматически.
Кажется, что две настройки, управляющие этим, установлены правильно:
Я получаю меню Intellisense, когда начинаю печатать и нажимаю «CTRL + Пробел», но это дает мне список всего, а не вещей, специально предназначенных для моего объекта.
Что я делаю не так?
- Выбор project.json — файла открывает DNX-проект, и VSCode загрузит этот проект плюс проекты, на которые есть ссылки.
- Выбор *.sln — файла открывает проект MSBuild. Он загрузит указанные *.csproj — проекты, а также одноуровневые или дочерние project.json — файлы, но не загрузит другие файлы проектов, на которые есть ссылка в файле решения.
- Выбор folder заставит VSCode сканировать файлы *.sln и project.json , и VSCode попытается загрузить их все.
Просто переустановите расширение и перезапустите VSCode / PC.
Моя проблема заключалась в том, что OmniSharp была более старой версией. Я установил флаг для обновления до последней версии в файле Settings.json . Это гарантирует, что расширение всегда будет последней версией.
И перезапустил код VS. Это исправило это для меня.
В моем случае проблема была не в настройках VS Code. Ошибка возникла из-за поврежденного пути TEMP, настроенного в настройках среды профиля пользователя реестра моего ПК. Я получил эту ошибку из Справки -> Переключить инструменты разработчика -> Консоль. Ошибка была отмечена в консоли, когда я открыл новый файл машинописного текста.
Очевидно, этот путь был поврежден. После обновления переменных среды в настройках реестра VS-код IntelliSense начал работать. Проверка консоли — хорошее начало, чтобы найти основную причину этой проблемы.
У меня только что это произошло ( это не было предложений завершения кода). Решением для меня было изменение пакета VSCode Editor в Unity на предыдущую версию, а затем обратно на текущую версию.
Для меня это было с 1.2.0 на 1.1.3, а затем обратно на 1.2.0. Я считаю, что удаление и переустановка 1.2.0 дало бы то же самое.
Окно> Диспетчер пакетов> Редактор кода Visual Studio
В моем случае расширение не было включено
Для меня я долгое время работал без интернета. Раньше он работал, но потом остановился. Я закрыл + снова открыл VSCode со стабильным Wi-Fi-соединением, и в VSCode появилась вкладка Output , отображающая переустановку расширений. После этого все заработало!
Попробовав несколько вещей, я просмотрел журналы OmniSharp только для того, чтобы понять это, потому что у меня было два разных файла sln в моей рабочей области. Он подобрал «другой» и, следовательно, не работал. Я удалил его, снова открыл vs code, и все снова в порядке.

Этот случай был для существующего проекта, который раньше работал нормально. Открывается через «недавнюю» историю кода vs.
Для ядра dotnet. Я открыл файл * .csprog своего проекта, не внес никаких изменений и сохранил его с помощью редактора кода vs.
Как только я сохранил, все материалы intellisense снова начали работать в других моих файлах в этом проекте.
Для рассматриваемого проекта я был озадачен, увидев успешные журналы для каждой перезагрузки сервера Omnisharp, а также идеально чистые сборки и запуски. Озадаченность усилилась, когда я сравнил эти журналы Omnisharp с журналами проекта 2.2 и обнаружил, что они практически идентичны.
После удаления Mono изменилась одна деталь — способ запуска Omnisharp. Теперь он загружается из сценария оболочки, расположенного по адресу
/.vscode/extensions/ms-vscode.csharp-1.19.0/.omnisharp/1.32.18/run . Раньше сам Mono загружал сервер из исполняемого файла в
В этом случае я попытался устранить другие неполадки, но безрезультатно:
«Это расширение просматривает дерево папок в поисках project.json или * .csproj и использует его в качестве родительской папки для определения пространств имен».
Чтобы интеллект работал, расширение Visual Studio Code OmniSharp должно присутствовать вместе с Mono. Когда вы открываете папку проекта / решения, OmniSharp получает зависимости проекта либо из project.json, либо из файла решения dotnet (если проект / решение созданы с помощью других версий Visual Studio).
Итак, когда вы посмотрите на окно вывода omnisharp сразу после открытия папки проекта / решения, вы можете увидеть следующие строки
Опубликуйте это, вы можете увидеть пару строк, как показано ниже,
Они означают, что ваши проекты распознаются расширением OmniSharp.
Я знаю, что ждать 200 секунд слишком долго. Но не волнуйтесь, это не помешает вам больше работать с файлами проекта. Но помните, что IntelliSense будет автоматически доступен после успешной загрузки всех проектов в папке.
Не стесняйтесь увеличивать настройку тайм-аута, так как это поможет вам получить intellisense, даже если вы не получите его сразу.
Надеюсь, моя информация вам поможет! Наслаждайтесь своим VSCode!
Что касается версии 0.5, я обнаружил, что мне нужно закрыть и снова открыть мои рабочие файлы, чтобы получить новую информацию intellisense, чтобы начать работать с моими собственными файлами. Обычно это происходит после того, как у меня открыт файл, который должен использовать информацию о типе из другого файла, который я только что создал. Пока я не закрою и не открою их (в редакторе), intellisense не всегда работает.
Надеюсь, это будет исправлено по мере развития приложения.
Если у вас есть рабочее пространство и по какой-то причине несколько папок, вам может потребоваться немного «помочь» omnisharp. Изначально у меня был большой проект, и в дальнейшем я добавил для него решение — в итоге осталось ДВЕ папки рабочего пространства (одна для запускаемого проекта, а другая — для решения). После создания этой настройки я испытал только первый проект, в котором работает intellisense.
Чтобы заставить работать intellisense, нужно было убедиться, что omnisharp выходит из решения, а не из проекта:
- Ctrl + Shift + p
- Напишите «OmniSharp: Select Project» и нажмите Enter.
- Выберите запись в рабочей области решения.
Очистка кеша машинописного текста и понижение версии машинописного текста до 3.3 решили проблему для меня.
Выполните следующие действия, чтобы очистить кеш и понизить версию машинописного текста:
Введите следующую команду в терминале в соответствии с вашей ОС и удалите все, что находится внутри.
Установите этот конкретный @typescript@3.3 , используя следующую команду.
IntelliSense — это вспомогательное средство для написания кода, включающее несколько возможностей: «Список членов», «Сведения о параметрах», «Краткие сведения» и «Завершить слово». Эти возможности помогают получать дополнительные сведения об используемом коде, отслеживать параметры при вводе и добавлять вызовы свойств и методов путем нескольких нажатий клавиш.
Многие аспекты IntelliSense зависят от конкретного языка. Дополнительные сведения об IntelliSense для различных языков приведены в разделах, перечисленных в подразделе См. также.
Список членов
После ввода символа триггера (например, точки ( . ) в управляемом коде или :: в C++) появляется список допустимых членов типа (или пространства имен). Если продолжить вводить символы, список фильтруется таким образом, чтобы включать только члены, начинающиеся этими символами, или члены, у которых любое слово в имени начинается этими символами. IntelliSense также выполняет сопоставление «верблюжьего» стиля, поэтому вы можете просто ввести первую букву каждого слова с «верблюжьим» стилем в имени члена, чтобы просмотреть список совпадений.
После выбора элемента, его можно вставить в код, нажав клавишу TAB или введя пробел. При выделении элемента и вводе точки элемент отображается с конечной точкой, которая вызывает еще один список членов. При выделении элемента (но до того, как он будет вставлен) отображаются краткие сведения по элементу.
В списке членов значок слева указывает на тип члена, такой как пространство имен, класс, функция или переменная. Список значков см. в разделе Значки представления классов и обозревателя объектов. Список может быть достаточно длинным; перемещаться вверх и вниз по списку можно с помощью клавиш PAGE UP и PAGE DOWN.

Функцию Список членов можно вызывать вручную, нажав клавиши CTRL+J, выбрав пункт Edit > IntelliSense > Список членов или нажав кнопку Список членов на панели инструментов редактора. При вызове в пустой строке или за пределами распознаваемой области в списке отображаются символы глобального пространства имен.
Чтобы отключить список членов по умолчанию (чтобы он не отображался без специального вызова), перейдите в раздел меню Сервис > Параметры > Все языки и снимите флажок Автоматически отображать список членов. Если требуется отключить список членов только для конкретного языка, перейдите к параметрам Общие для этого языка.
Можно также включить режим подсказки, в котором в код будет вставляться только печатаемый текст. Например, если ввести идентификатор, отсутствующий в списке, и нажать клавишу TAB, в режиме завершения введенный идентификатор был бы заменен записью из списка. Для переключения между режимом завершения и режимом подсказки нажмите CTRL+ALT+ПРОБЕЛ или выберите Изменить > IntelliSense > Переключить режим завершения.
Сведения о параметрах
Выделение параметра полужирным шрифтом указывает на следующий параметр, необходимый при вводе функции. Для перегруженных функций можно использовать клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ для просмотра сведений об альтернативных параметрах для перегрузок функций.

При аннотировании функций и параметров при помощи комментариев XML-документации комментарии будут отображаться в качестве сведений о параметрах. Дополнительные сведения см. в разделе Создание XML-примечаний к коду.
Сведения о параметрах можно вызвать вручную, выбрав Изменить > IntelliSense > Сведения о параметрах, нажав клавиши CTRL+SHIFT+ПРОБЕЛ или кнопку Сведения о параметрах на панели инструментов редактора.
Краткие сведения
Функция «Краткие сведения» отображает полное объявление любого идентификатора в коде.

При выборе члена в поле Список членов для него также отображаются краткие сведения.
Краткие сведения можно открыть вручную, выбрав пункт меню Изменить > IntelliSense > Краткие сведения или нажав клавиши CTRL+K, CTRL+I или кнопку Краткие сведения на панели инструментов редактора.
Если функция перегружена, IntelliSense может не отображать информацию для всех форм перегрузки.
Чтобы отключить краткие сведения для кода C++, можно перейти в меню Сервис > Параметры > Текстовый редактор > С/С++ > Дополнительно и задать для параметра Автоматические краткие сведения значение false .
Завершение слов
Функция «Завершить слово» завершает оставшуюся часть имени переменной, команды или функции после ввода достаточного количества символов для однозначного определения термина. Чтобы вызвать функцию «Завершить слово», можно выбрать пункт меню Изменить > IntelliSense > Завершить слово либо нажать клавиши CTRL+ПРОБЕЛ или кнопку Завершить слово на панели инструментов редактора.
Параметры IntelliSense
Параметры IntelliSense включены по умолчанию. Чтобы отключить их, выберите Сервис > Параметры > Текстовый редактор и снимите флажок Сведения о параметрах или Автоматически отображать список членов, если вам не нужна функция списка членов.
Значки IntelliSense
Значки в IntelliSense могут передавать дополнительные значения с помощью модификаторов значков. Это звезды, сердечки и замки, расположенные поверх значка объекта, которые означают защищенное, внутреннее или закрытое использование соответственно.
Устранение неполадок IntelliSense
В некоторых случаях параметры IntelliSense могут не работать должным образом.
Курсор находится под ошибкой кода. Если в коде над курсором имеется неполная функция или другая ошибка, функция IntelliSense может перестать работать, поскольку ей не удается проанализировать элементы кода. Для устранения этой проблемы можно отметить соответствующий код комментарием.
Курсор находится в комментарии к коду. Если курсор находится в комментарии в файле исходного кода, вы не сможете использовать IntelliSense.
Курсор находится в строковом литерале. Вы не сможете использовать IntelliSense, если курсор находится внутри кавычек, в которые заключен строковый литерал, как показано в следующем примере:
Автоматические параметры отключены. По умолчанию функция IntelliSense работает автоматически, но ее можно отключить. Вы можете вызывать функцию IntelliSense, даже если автоматическое завершение операторов отключено.
IntelliSense для одного файла
Когда вы открываете файл, который не включен в проект, Visual Studio предоставляет определенную поддержку IntelliSense, но по умолчанию ошибки не подчеркиваются волнистой линией. Если на панели навигации указано Прочие файлы, это может быть причиной того, что ошибочный код не подчеркивается волнистой линией или не определен макрос препроцессора.
Проверка списка ошибок
Если файл не открыт в режиме одного файла и функция IntelliSense работает неправильно, сначала нужно проверить окно «Список ошибок». Чтобы увидеть все ошибки IntelliSense в текущем исходном файле вместе со всеми включенными файлами заголовков, выберите в раскрывающемся списке Сборка и IntelliSense:

В IntelliSense отображается не более 1000 ошибок. Если файлы заголовков, включенные в исходный файл, содержат более 1000 ошибок, в самом начале исходного файла отображается только один маркер ошибки в виде волнистой линии.
Проекты MSBuild

Чтобы просмотреть текущие значения макросов сборки, например VC_IncludePath, выберите строку «Включаемые каталоги» и щелкните раскрывающийся список справа. Затем выберите и нажмите кнопку Макросы.
Проекты, использующие файл makefile
Для проектов Makefile, которые основаны на шаблоне проектов NMake, выберите на левой панели NMake, а затем Путь поиска включаемых файлов в категории IntelliSense:

Проекты в виде папок
Если в файле CppProperties.json есть синтаксическая ошибка, функция IntelliSense для затронутых файлов будет работать неправильно. В окне вывода Visual Studio будет отображаться ошибка.
Ошибки анализа тегов
Анализатор тегов — это анализатор кода C++ с нечеткой логикой, который используется для просмотра и навигации. Он работает очень быстро, но не пытается полностью интерпретировать каждую конструкции кода.
Например, он не вычисляет значения макросов препроцессора и поэтому может неправильно анализировать код, в котором они активно используются. Когда анализатор тегов встречает незнакомую конструкцию кода, он может пропустить всю эту область кода.
Есть два типичных проявления этой проблемы в Visual Studio:
Если на панели навигации отображается корневой макрос, значит, текущее определение функции пропущено:

Интегрированная среда разработки предлагает создать определение для функции, которая уже определена:

Чтобы устранить подобные проблемы, создайте файл с именем cpp.hint в корневом каталоге решения. Дополнительные сведения см. в статье Файлы подсказок.
Ошибки анализатора тегов отображаются в окне Список ошибок.
Проверка параметров проекта с помощью журнала ведения диагностики
Чтобы проверить, использует ли компилятор IntelliSense правильные параметры, например включаемые пути и макросы препроцессора, включите журнал ведения диагностики для командных строк IntelliSense в разделе Средства > Параметры > Текстовый редактор > C/C++ > Дополнительно > Запись данных диагностики. Установите следующие значения параметров: Включить ведение журнала — True, Уровень ведения журналов — 5 (самый подробный) и Фильтр ведения журналов — 8 (журнал IntelliSense).
В окне вывода теперь будут показаны командные строки, которые передаются в компилятор IntelliSense. Пример выходных данных:
Возможно, эти сведения помогут определить, почему IntelliSense выдает неточную информацию. Например, если включаемая папка вашего проекта содержит строку $(MyVariable)\Include, а в журнале диагностики в качестве включенного пути отображается /I\Include, значит, переменная $(MyVariable) не была вычислена и была удалена из окончательного включаемого пути.
Компиляция IntelliSense
Visual Studio использует выделенный компилятор C++ для создания и обслуживания базы данных, используемой для всех функций IntelliSense. Чтобы синхронизировать базу данных IntelliSense с кодом, после определенных изменений в параметрах проекта или в исходных файлах Visual Studio автоматически запускает в фоновом режиме задачи компиляции только для IntelliSense.
Но иногда Visual Studio может не обновлять базу данных IntelliSense своевременно. Например, после выполнения команды git pull или git checkout Visual Studio может потребоваться вплоть до часа для того, чтобы обнаружить изменения в файлах. Вы можете принудительно запустить повторное сканирование всех файлов решения. Для этого щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите Повторить сканирование решения.
Устранение ошибок компиляции IntelliSense
При компиляции IntelliSense не создаются двоичные файлы, но она также может завершиться с ошибкой. Одна из возможных причин ошибки — использование пользовательских файлов с расширениями .props или .targets. В Visual Studio 2017 версии 15.6 и более поздней ошибки сборки только для IntelliSense отображаются в окне вывода. Чтобы их увидеть, в раскрывающемся списке Показать выходные данные из выберите Решение:

Если присвоить переменной среды TRACEDESIGNTIME значение true и перезапустить Visual Studio, вы найдете в каталоге %TEMP% файл журнала, который может помочь при диагностике ошибки компиляции.
Дополнительные сведения о переменной среды TRACEDESIGNTIME см. в статьях о Roslyn и общей системе проектов. Сведения в этих статьях относятся и к проектам C++.
кто-нибудь видел такое поведение раньше? Есть ли у кого-нибудь другие предложения о том, как я могу заставить IntelliSense вернуться к тому, как все было раньше? Если нет, мне, возможно, придется сделать новую переустановку VS.

в прозе, если вы не можете увидеть вышеуказанное изображение:
Открыть Инструменты > Параметры > Текстовый Редактор. Если у вас проблема только с одним языком, найдите этот язык; если это для всего, нажмите «все языки». Справа вверху будет несколько параметров с надписями «авто-члены списка», «скрыть расширенные члены»и» информация о параметрах». Убедитесь, что все они включены (хотя второй может быть отключен; если это так, не обращай внимания).
Я обнаружил, что иногда даже проверка настроек в разделе Параметры — > завершение инструкции (ответ выше) не работает. В этом случае сохранение и перезапуск Visual Studio будет повторно включить Intellisense.
наконец, эта ссылка имеет список других способов устранения неполадок Intellisense с разбивкой по языкам (для более конкретных ошибок).
Я начну отмечать, что этого не произошло с тех пор, как я обновил свою ОЗУ. Я был в 4GB и часто имел бы несколько экземпляров VS open вместе с SSMS. С тех пор я перешел на 8GB, а затем 16GB.
вот шаги, которые я прохожу, когда я теряю intellisense.
если затрагивается только один файл/окно, закройте / откройте этот файл. Если это не сработает, попробуйте ниже.
В Visual Studio:
- Нажмите Инструменты- > Параметры — >Текст Редактор — >Все Языки- > Общие
- снимите флажок «авто список участников»
- снимите «параметры»
- проверьте » авто список членов «(да, тот, который вы только что сняли)
- Проверьте «информация о параметрах» (опять же, тот, который вы только что сняли)
- нажмите OK
Если это не сработает, вот еще несколько шагов, чтобы попробовать:
- закройте все документы VS и откройте
- если все еще нет рабочий, закрыть / повторно открыть решение
- если все еще не работает, перезапустите VS.
для проектов на C++:
MSDN имеет несколько вещей, чтобы попробовать:MSDN предложения
поврежденный кажется наиболее вероятным.
- закрыть решение.
- удалить .
- открыть решение. (Это создает новый .ncb файл.)
Читайте также:
- Как выгрузить статистику из инстаграм в excel
- Предиктивный ввод в word
- 1с код ошибки sender
- Как похудеть на видео фотошоп
- Поиск символа в ячейке excel vba
Установка локализованных файлов IntelliSense для .NET
IntelliSense — это вспомогательное средство для завершения кода, доступное в различных интегрированных средах разработки (IDE), таких как Visual Studio. По умолчанию при разработке проектов .NET в пакет SDK входит только английская версия файлов IntelliSense. В этой статье описано, как выполнить следующие задачи.
- Установка локализованной версии файлов.
- Изменение установки Visual Studio для использования другого языка.
Локализованные файлы IntelliSense больше не доступны. Последняя версия, для которую они доступны, — .NET 5. Рекомендуется использовать файлы IntelliSense на английском языке.
Предварительные требования
- Пакет SDK для .NET.
- Visual Studio 2019 версии 16.3 или более поздней версии.
Скачивание и установка локализованных файлов IntelliSense
Эта процедура требует наличия прав администратора, чтобы копировать файлы IntelliSense в папку установки .NET.
- Перейдите на страницу скачивания файлов IntelliSense.
- Скачайте файл IntelliSense для нужных языка и версии.
- Извлеките содержимое ZIP-файла.
- Перейдите в папку IntelliSense для .NET.
- Перейдите в папку установки .NET. Ее расположение по умолчанию: %ProgramFiles%\dotnet\packs.
- Выберите пакет SDK, для которого необходимо установить IntelliSense, и перейдите по соответствующему пути. Можно выбрать один из следующих параметров.
Тип пакета SDK Путь .NET 6 и более поздних версий Microsoft.NETCore.App.Ref Классические приложения Microsoft.WindowsDesktop.App.Ref .NET Standard NETStandard.Library.Ref - Перейдите к версии, для которой необходимо установить локализованные файлы IntelliSense. Например, 5.0.0.
- Откройте папку ref.
- Откройте папку моникера. Например: net5.0.
Таким образом, полный путь для перехода будет выглядеть примерно так: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0.
Изменение языка Visual Studio
Чтобы в Visual Studio использовать другой язык для IntelliSense, необходимо установить соответствующий языковой пакет. Это можно сделать во время установки или позднее, изменив установку Visual Studio. Если среда Visual Studio уже настроена с нужным вам языком, установка IntelliSense также будет готова.
Установка языкового пакета
Если нужный языковой пакет не был установлен, обновите Visual Studio, как показано ниже.
Чтобы установить, обновить или изменить среду Visual Studio, необходимо войти в учетную запись с правами администратора. Дополнительные сведения см. в статье Разрешения пользователей и Visual Studio.

- Найдите установщик Visual Studio на своем компьютере. Например, на компьютере с Windows 10 нажмите кнопку Пуск и прокрутите список до буквы V, где расположен пункт Visual Studio Installer.
Примечание Кроме того, Visual Studio Installer можно найти в следующем расположении: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe

Для продолжения работы может потребоваться обновление самого установщика. Если это так, следуйте инструкциям на экране.
В установщике найдите установленный у вас выпуск Visual Studio, для которого нужно добавить языковой пакет, и щелкните Изменить.Важно! Если кнопка Изменить отсутствует, но доступна кнопка Обновить, необходимо обновить Visual Studio и лишь затем изменить установку. После завершения обновления должна появиться кнопка Изменить.

- На вкладке Языковые пакеты выберите языки, которые нужно установить, или отмените выбор тех, которые нужно удалить.
- Выберите Изменить. Начнется обновление.
Изменение языковых параметров в Visual Studio
После установки нужных языковых пакетов измените параметры Visual Studio для использования другого языка, как описано ниже.
- Запустите Visual Studio.
- В начальном окне выберите Продолжить без кода.
- В строке меню выберите Сервис>Параметры. Откроется диалоговое окно «Параметры «.
- В узле Среда выберите Выбор языка.
- В раскрывающемся списке Язык выберите язык. Нажмите кнопку ОК.
- Появится диалоговое окно, информирующее о необходимости перезапуска Visual Studio для применения изменений. Нажмите кнопку ОК.
- Перезапустите Visual Studio.
Теперь при открытии проекта .NET, предназначенного для версии только что установленных файлов IntelliSense, функции IntelliSense должны работать надлежащим образом.
См. также раздел
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
C# IntelliSense
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Возможности C# IntelliSense доступны при написании кода в редакторе и его отладке в командном окне Режим интерпретации.
Списки завершения
Списки завершения IntelliSense в C# содержат маркеры из операций составления списков членов, завершения слов и других. Они обеспечивают быстрый доступ к следующим элементам:
- члены типа или пространства имен;
- имена переменных, команд и функций;
- Фрагменты кода
- Ключевые слова языка
- Методы расширения
Список завершения в C# обладает достаточно широкими возможностями по фильтрации несоответствующих токенов и предварительному выбору токена в зависимости от контекста. Дополнительные сведения см. в разделе Фильтрованные списки завершения.
Фрагменты кода в списках завершения
В C# списки завершения содержат фрагменты кода, позволяющие легко вставлять предварительно определенные тела кода в программу. Фрагменты кода отображаются в списке завершения в виде текста ярлыка фрагмента. Дополнительные сведения о фрагментах кода, доступных в C# по умолчанию, см. в описании фрагментов кода C#.
Ключевые слова языка в списках завершения
Список завершения в C# также содержит ключевые слова языка. Дополнительные сведения о ключевых словах языка C# см. в разделе Ключевые слова C#.
Методы расширения в списках завершения
Список завершения в C# содержит методы расширения, которые находятся в области действия.
В списке завершения отображаются не все методы расширения для объектов String.
В методах расширения используется не такой значок, как в методах экземпляра. Если метод экземпляра и метод расширения с одинаковыми именами находятся в одной области, в списке завершения отображается значок метода расширения.
Фильтрованные списки завершения
IntelliSense удаляет ненужные элементы из списка завершения с помощью фильтров. C# фильтрует списки завершения по следующим элементам:
- Интерфейсы и базовые классы. IntelliSense автоматически удаляет элементы из списков завершения интерфейсов и базовых классов как в базе объявлений классов, так и в списках интерфейсов и ограничений. Например, перечисления не отображаются в списке завершения для базовых классов, поскольку перечисления не могут использоваться для базовых классов. Список завершения для базовых классов содержит только интерфейсы и пространства имен. Если выбрать элемент в списке и ввести запятую, IntelliSense удалит базовые классы из списка завершения, так как C# не поддерживает множественное наследование. Аналогичная логика используется и для предложений ограничения.
- Атрибуты. При применении атрибута к типу список завершения фильтруется таким образом, что в нем остаются только типы, которые получены из пространств имен, содержащих эти типы, например Attribute.
- Предложения CATCH.
- Инициализаторы объектов. В списке завершения будут отображаться только те элементы, которые могут быть инициализированы.
- Ключевое слово new. При вводе new и нажатии клавиши ПРОБЕЛ появляется список завершения. Элемент в списке выбирается автоматически в зависимости от контекста в коде. Например, в списке завершения автоматически выбираются элементы для объявлений и операторов возврата в методах.
- Ключевое слово enum. При нажатии клавиши ПРОБЕЛ после ввода знака равенства для назначения перечисления появляется список завершения. Элемент в списке выбирается автоматически в зависимости от контекста в коде. Например, в списке завершения автоматически выбираются элементы после ввода ключевого слова «return» и при объявлении.
- Операторы AS и IS. Фильтрованный список завершения отображается автоматически при нажатии клавиши ПРОБЕЛ после ввода ключевого слова as или is .
- События. При вводе ключевого слова event список завершения содержит только типы делегатов.
- Справочная система по параметрам автоматически сортируется по первой перегрузке метода, соответствующей параметрам, по мере их ввода. Если существует несколько перегрузок метода, можно использовать кнопки со стрелками вверх и вниз для перехода к следующей возможной перегрузке в списке.
Недавно использовавшиеся члены
IntelliSense запоминает последние элементы, выбранные во всплывающем окне Список членов для автоматического завершения имени объекта. Когда вы откроете список членов в следующий раз, сверху будут отображаться элементы, которые недавно использовались. Журнал наиболее часто используемых членов списка очищается после завершения каждого сеанса Visual Studio.
override
Если ввести override, а затем нажать клавишу ПРОБЕЛ, IntelliSense покажет во всплывающем списке все допустимые элементы базового класса, которые можно переопределить. Если после приглашения override ввести тип возвращаемого значения метода, IntelliSense отобразит только методы, возвращающие этот тип. Если IntelliSense не сможет найти совпадения, будут показаны все члены базового класса.
IntelliSense с возможностями искусственного интеллекта
Расширение Visual Studio IntelliCode предоставляет списки завершения IntelliSense с использованием искусственного интеллекта. IntelliCode предсказывает, какой API будет наиболее подходящим, а не просто возвращает список членов в алфавитном порядке. Оно формирует список динамически на основе текущего контекста вашего кода.
Автоматическое генерирование кода
Добавить директиву using
Операция IntelliSense Добавить директиву using автоматически добавляет требуемую директиву using в файл кода. Это позволяет сосредоточить внимание на коде, который вы пишете, и не отвлекаться на другую часть кода.
Чтобы инициировать операцию Добавить директиву using, поместите курсор на ссылку на тип, которую не удается разрешить. Например, при создании консольного приложения и добавлении XmlReader в тело метода Main в соответствующей строке появляется подчеркивание красной волнистой линией, так как ссылку на тип не удается разрешить. После этого можно вызвать операцию Добавить директиву using, выбрав быстрое действие. Быстрые действия отображаются, только если курсор находится в несвязанном типе.

Щелкните значок лампочки с ошибкой и выберите пункт using System.Xml;, чтобы автоматически добавить директиву using.
Добавлять отсутствующие директивы using при вставке
IntelliSense может автоматически добавлять недостающие директивы using в код при вставке типа в файл кода. Эта функция экономит время, автоматизируя задачу добавления недостающих директив using при вставке типа в файл. Включите эту функцию в текстовом редакторе>параметров>инструментов>C# (или Visual Basic) >Дополнительно и выберите «Добавить отсутствующие» директивы для вставки.
Удаление и сортировка директив using
Параметр Удалить и сортировать директивы using позволяет сортировать и удалять объявления using и extern , не меняя поведение исходного кода. Со временем исходные файлы могут стать перегруженными, и их станет трудно читать по причине ненужных и неорганизованных директив using . Параметр Удалить и сортировать директивы using сжимает исходный код, удаляя неиспользуемые директивы using и улучшая читаемость путем их сортировки. В меню Правка выберите IntelliSense, а затем Упорядочить директивы Using.
Реализация интерфейса
Технология IntelliSense может облегчить реализацию интерфейса при работе в редакторе кода. Обычно для правильной реализации интерфейса нужно создать объявление метода для каждого члена интерфейса в классе. При использовании IntelliSense после ввода имени интерфейса в объявлении класса появляется значок быстрых действий в виде лампочки. Он позволяет выбрать вариант автоматической реализации интерфейса с помощью явного или неявного именования. При явном именовании объявления метода содержат имя интерфейса. В случае неявного именования объявления метода не указывают, к какому интерфейсу они принадлежат. Доступ к явно именованному методу интерфейса может осуществляться только через экземпляр интерфейса, а не через экземпляр класса. Дополнительные сведения см. в разделе Явная реализация интерфейса.
Реализация интерфейса создает минимально необходимый для работы интерфейса набор заглушек методов. Если базовый класс уже реализует часть интерфейса, заглушки не восстанавливаются.
Реализация абстрактного базового класса
IntelliSense предоставляет возможность автоматической реализации членов абстрактного базового класса при работе в редакторе кода. В обычном режиме для реализации членов абстрактного базового класса для каждого метода абстрактного базового класса в производном классе необходимо создать новое определение метода. При использовании IntelliSense после ввода имени абстрактного базового класса в объявлении класса появляется значок быстрых действий в виде лампочки. Он дает возможность автоматической реализации методов базового класса.
Заглушки метода, создаваемые функцией Реализовать абстрактный базовый класс, моделируются фрагментом кода, определенным в файле MethodStub.snippet. Фрагменты кода можно изменять. Подробнее см. в разделе Пошаговое руководство. Создание фрагмента кода.
Создание в результате использования
Возможность Создание в результате использования позволяет использовать классы и элементы до того, как они будут определены. Для любого класса, конструктора, метода, свойства, поля или перечисления, которое вы хотите использовать, но еще не определили, можно создать заглушку. Новые типы и члены можно создавать, не покидая текущего расположения в коде. Это сводит до минимума нарушения в рабочем процессе.
Каждый неопределенный идентификатор подчеркивается красной волнистой линией. При перемещении указателя мыши на такой идентификатор в подсказке появляется сообщение об ошибке. Для отображения нужных параметров можно выполнить одну из следующих процедур:
- Щелкните неопределенный идентификатор. Под идентификатором появляется значок быстрых действий в виде лампочки с ошибкой. Щелкните лампочку с ошибкой.
- Щелкните неопределенный идентификатор и нажмите клавиши CTRL+ (CTRL+PERIOD).
- Щелкните неопределенный идентификатор правой кнопкой мыши и выберите пункт Быстрые действия и рефакторинг.
В число появившихся параметров могут входить следующие:
- Сформировать свойство
- Сформировать поле
- Сформировать метод
- Сформировать класс
- Сформировать новый тип (для класса, структуры, интерфейса или перечисления)
Сформировать обработчики событий
В редакторе кода IntelliSense упрощает подключение методов (обработчиков событий) к полям событий.
Если ввести оператор += после поля события в файле CS, IntelliSense предложит нажать клавишу TAB. В результате будет вставлен новый экземпляр делегата, который указывает на метод, обрабатывающий событие.
При нажатии клавиши TAB IntelliSense автоматически завершает оператор и отображает ссылку на обработчик событий в виде выделенного текста в редакторе кода. Для завершения автоматического подключения события IntelliSense предлагает снова нажать клавишу TAB или создать пустую заглушку для обработчика событий.
Если новый делегат, созданный IntelliSense, ссылается на существующий обработчик событий, IntelliSense выводит эти сведения во всплывающей подсказке. Эту ссылку можно изменить — соответствующий текст уже выделен в редакторе кода. В противном случае автоматическое подключение события завершается на этом этапе.
При нажатии клавиши TAB IntelliSense заглушает метод с корректной сигнатурой и размещает указатель в теле обработчика событий.
Для возврата к оператору привязки к событию используйте команду Назад в меню Вид (CTRL+—).
См. также
- Использование IntelliSense
- Интегрированная среда разработки Visual Studio
