Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся сведения о функциях Visual Studio для разработки F#.
Установка поддержки F#
Для разработки с помощью F# в Visual Studio сначала установите рабочую нагрузку разработки классических приложений .NET , если вы еще не сделали этого. Рабочие нагрузки Visual Studio устанавливаются с помощью Установщика Visual Studio, который можно открыть, выбрав "Сервис получения инструментов>" и "Компоненты".
Функции проекта F#
Различные шаблоны проектов и элементов доступны для F# в Visual Studio. На следующем рисунке показаны некоторые шаблоны проектов F# для .NET Core и .NET Standard:
На следующем рисунке показаны некоторые шаблоны элементов F#:
Дополнительные сведения о шаблонах элементов для доступа к данным см. в разделе поставщиков типов F#.
В следующей таблице перечислены функции в свойствах проекта для F#:
| Параметр проекта | Поддерживается в F#? | Примечания. |
|---|---|---|
| Файлы ресурсов | Да | |
| Параметры сборки, отладки и ссылки | Да | |
| Многонацелие | Да | |
| Значок и манифест | нет | Доступно с помощью параметров командной строки компилятора. |
| ASP.NET клиентские службы | нет | |
| ClickOnce | нет | При необходимости используйте клиентский проект на другом языке .NET. |
| строгая система именования | нет | Доступно с помощью параметров командной строки компилятора. |
| Публикация сборок и управление версиями | нет | |
| Анализ кода | нет | Средства анализа кода можно запускать вручную или как часть команды после сборки. |
| Безопасность (изменение уровней доверия) | нет |
Конструктор проектов
Конструктор проектов состоит из нескольких страниц свойств проекта, сгруппированных по связанным функциям. Страницы, доступные для проектов F#, в основном являются подмножеством тех, которые доступны для других языков, и описаны в следующей таблице. Ссылки предоставляются на соответствующую страницу конструктора проектов C#.
| Страница конструктора проектов | Связанные ссылки | Описание |
|---|---|---|
| Заявление | Страница приложения, конструктор проектов | Позволяет указать параметры и свойства уровня приложения, такие как создание библиотеки или исполняемого файла, какая версия .NET предназначена для приложения, а также сведения о том, где хранятся файлы ресурсов, используемые приложением. |
| Строить | Страница сборки, конструктор проектов | Позволяет управлять компиляцией кода. |
| События сборки | Страница "События сборки", конструктор проектов | Позволяет указать команды для выполнения до или после компиляции. |
| Отладка | страница отладки конструктор проектов | Позволяет управлять запуском приложения во время отладки. Это включает в себя команды, используемые и начальный каталог приложения, а также любые специальные режимы отладки, которые вы хотите включить, например машинный код и SQL. |
| Пакет (только пакет SDK для .NET) | Не применимо | Позволяет определять метаданные пакета NuGet при публикации в виде пакета NuGet. |
| Ссылочные пути | Управление ссылками в проекте | Позволяет указать, где искать сборки, от которых зависит код. |
| Ресурсы (только пакет SDK для .NET) | Не применимо | Позволяет создавать файл ресурсов по умолчанию и управлять ими. |
Параметры F#для конкретного языка
В следующей таблице перечислены параметры, относящиеся к F#:
| Страница конструктора проектов | Настройки | Описание |
|---|---|---|
| Строить | Создание вызовов хвоста | Если выбрано, включается использование инструкции "Промежуточный язык Майкрософт" (MSIL). Это приводит к повторному использование кадра стека для рекурсивных функций хвоста. Эквивалентен параметру компилятора --tailcalls . |
| Строить | Другие флаги | Позволяет указать дополнительные параметры командной строки компилятора. |
Функции редактора кода и текста
В F#поддерживаются следующие функции кода и текстовых редакторов Visual Studio:
| Функция | Описание | Поддерживается в F#? |
|---|---|---|
| Автоматически комментировать | Позволяет комментировать или раскомментировать разделы кода. | Да |
| Автоматическое форматирование | Переформатирует код со стандартным отступом и стилем. | нет |
| Закладки | Позволяет сохранять места в редакторе. | Да |
| Изменение отступа | Отступы или юнинденты выбранных строк. | Да |
| Интеллектуальная отступа | Автоматически отступы и отмена отступов курсора в соответствии с правилами области F#. | Да |
| Найти и заменить текст | Позволяет выполнять поиск в файле, проекте или решении, а также изменять текст. | Да |
| Перейдите к определению API .NET | При расположении курсора в API .NET отображается код, созданный из метаданных .NET. | нет |
| Перейти к определению для определяемого пользователем API | Когда курсор находится в определенной программе сущности, перемещает курсор в расположение в коде, где определена сущность. | Да |
| Перейти к строке | Позволяет перейти к определенной строке в файле по номеру строки. | Да |
| Панели навигации в верхней части файла | Позволяет переходить к расположениям в коде, например именем функции. | Да |
| Рекомендации по структуре блоков | Показывает рекомендации, указывающие области F#, которые можно наведите указатель мыши на предварительный просмотр. | Да |
| создание наброска | Позволяет свернуть разделы кода для создания более компактного представления. | Да |
| Tabify | Преобразует пробелы на вкладки. | Да |
| Цветирование типов | Отображает определенные имена типов в специальном цвете. | Да |
| Быстрый поиск. Ознакомьтесь с кратким поиском, поиском и заменой окна. | Позволяет выполнять поиск в файле или проекте. | Да |
| CTRL+Нажмите кнопку " Перейти к определению" | Позволяет удерживать сочетание клавиш CTRL и щелкнуть символ F#, чтобы вызвать "Перейти к определению". | Да |
| Переход к определению из QuickInfo | Доступные для щелчка символы внутри подсказок, которые вызывают go to Definition. | Да |
| Перейти ко всем | Включает глобальную, нечетко совпадающую навигацию для всех конструкций F# с помощью CTRL+T. | Да |
| Встроенное переименование | Переименовывает все вхождения встроенного символа. | Да |
| Поиск всех ссылок | Находит все вхождения символа в базе кода. | Да |
| Упрощение исправления кода имени | Удаляет ненужные квалификаторы для символов F#. | Да |
Удаление исправления кода неиспользуемой open инструкции |
Удаляет все ненужные open инструкции в документе. |
Да |
| Исправление кода неиспользуемого значения | Предлагает переименовать неиспользуемый идентификатор для подчеркивания. | Да |
Общие сведения о редактировании кода в Visual Studio и функциях текстового редактора см. в разделе "Написание кода" в редакторе.
Функции IntelliSense
В следующей таблице перечислены поддерживаемые функции IntelliSense и не поддерживаются в F#:
| Функция | Описание | Поддерживается в F#? |
|---|---|---|
| Автоматическая реализация интерфейсов | Создает заглушки кода для методов интерфейса. | Да |
| Фрагменты кода | Внедряет код из библиотеки распространенных конструкций кода в разделы. | нет |
| Полный текст Word | Сохраняет ввод, завершив слова и имена при вводе. | Да |
| Автоматическое завершение | Если этот параметр включен, вызывает завершение слова, чтобы выбрать первое совпадение по мере ввода, а не ждать, чтобы выбрать один или нажать клавиши CTRL+ПРОБЕЛ. | Да |
| Завершение предложения для символов в нераскрытых пространствах имен | При автоматическом завершении предлагается соответствующий символ, который находится в нераскрытом пространстве имен, предлагая выполнить соответствующую open инструкцию при выборе. |
Да |
| Создание элементов кода | Позволяет создавать код заглушки для различных конструкций. | нет |
| Список участников | При вводе оператора доступа к члену (.) отображаются члены для типа. | Да |
| Упорядочение использования и открытие | Упорядочивает пространства имен, на которые ссылаются инструкции в C# или открытые директивы в F#. | нет |
| Сведения о параметрах | Отображает полезные сведения о параметрах при вводе вызова функции. | Да |
| Краткие сведения | Отображает полное объявление для любого идентификатора в коде. | Да |
| Автоматическое завершение фигурных скобок | Автоматически завершает конструкции синтаксиса F# в виде фигурных скобок в транзакционной форме. | Да |
Общие сведения об IntelliSense см. в разделе "Использование IntelliSense".
Функции отладки
В следующей таблице перечислены функции, доступные при отладке кода F#:
| Функция | Описание | Поддерживается в F#? |
|---|---|---|
| Окно автозапуска | Отображает автоматические или временные переменные. | нет |
| Точки останова | Позволяет приостановить выполнение кода в определенных точках во время отладки. | Да |
| Условные точки останова | Включает точки останова, которые проверяют условие, определяющее, следует ли приостановить выполнение. | Да |
| Правка и продолжение работы | Позволяет изменять и компилировать код при отладке запущенной программы без остановки и перезапуска отладчика. | нет |
| Средство оценки выражений | Вычисляет и выполняет код во время выполнения. | Нет, но вычислитель выражений C# можно использовать, хотя необходимо использовать синтаксис C#. |
| Историческая отладка | Позволяет выполнить шаг в ранее выполненный код. | Да |
| Окно "Локальные" | Отображает локально определенные значения и переменные. | Да |
| Запуск на курсор | Позволяет выполнять код до тех пор, пока не будет достигнута строка, содержащая курсор. | Да |
| Войдите в | Позволяет заранее выполнить и перейти в любой вызов функции. | Да |
| Переступить | Позволяет заранее выполнять в текущем кадре стека и перемещаться мимо любого вызова функции. | Да |
Общие сведения об отладчике Visual Studio см. в разделе "Отладка" в Visual Studio.
Дополнительные инструменты
В следующей таблице приведены сведения о поддержке F# в средствах Visual Studio.
| Инструмент | Описание | Поддерживается в F#? |
|---|---|---|
| Иерархия вызовов | Отображает вложенную структуру вызовов функций в коде. | нет |
| Метрики кода | Собирает сведения о коде, например счетчики строк. | нет |
| Представление классов | Предоставляет представление кода на основе типов в проекте. | нет |
| Окно списка ошибок | Отображает список ошибок в коде. | Да |
| Интерактивный F# | Позволяет вводить (или копировать и вставлять) код F# и запускать его немедленно независимо от сборки проекта. Интерактивное окно F# — это цикл чтения, оценки, печати (REPL). | Да |
| Обозреватель объектов | Позволяет просматривать типы в сборке. | Типы F#, как они отображаются в скомпилированных сборках, не отображаются точно так же, как и вы создаете их. Вы можете просмотреть скомпилированное представление типов F#, но вы не можете просматривать типы, как они отображаются в F#. |
| окно вывода | Отображает выходные данные сборки. | Да |
| Анализ производительности | Предоставляет средства для измерения производительности кода. | Да |
| Окно свойств | Отображает и включает редактирование свойств объекта в среде разработки с фокусом. | Да |
| Обозреватель серверов | Предоставляет способы взаимодействия с различными ресурсами сервера. | Да |
| Обозреватель решений | Позволяет просматривать проекты и файлы и управлять ими. | Да |
| Список задач | Позволяет управлять рабочими элементами, относящимися к коду. | нет |
| Тестовые проекты | Предоставляет функции, помогающие протестировать код. | нет |
| Ящик для инструментов | Отображает вкладки, содержащие перетаскиваемые объекты, такие как элементы управления и разделы текста или кода. | Да |