Первая программа в Visual Studio

Последнее обновление: 09.12.2023

Мы можем создавать приложения на F# в текстовом редакторе и компилировать в консоли. Однако если мы работаем на Windows, то мы также можем использовать бесплатную и полнофункциональную среду разработки как Visual Studio Community, которая во многом упрощает создание и отладку приложения. Данную среду которую можно загрузить по следующему адресу: Microsoft Visual Studio.

Установка Visual Studio 2022

После загрузки запустим программу установщика. В открывшемся окне нам будет предложено выбрать те компоненты, которые мы хотим установить вместе Visual Studio. Стоит отметить, что Visual Studio - очень функциональная среда разработки и позволяет разрабатывать приложения с помощью множества языков и платформ. В нашем случае нам будет интересовать прежде всего C# и .NET.

Чтобы добавить в Visual Studio поддержку проектов для C# и .NET, в программе установки среди рабочих нагрузок можно выбрать только пункт ASP.NET и разработка веб-приложений. Можно выбрать и больше опций или вообще все опции, однако стоит учитывать свободный размер на жестком диске - чем больше опций будет выбрано, соответственно тем больше места на диске будет занято.

Установка Visual Studio 2022

И при инсталляции Visual Studio на ваш компьютер будут установлены все необходимые инструменты для разработки программ, в том числе фреймворк .NET.

После завершения установки создадим первую программу. Она будет простенькой. Вначале откроем Visual Studio. На стартовом экране выберем Create a new project (Создать новый проект)

Создание первого проекта в Visual Studio 2022

На следующем окне в качестве языка выберем F#, а в качестве типа проекта укажем шаблон Console Application, то есть мы будем создавать консольное приложение на языке F#

Консольный проект для F# в Visual Studio

Далее в поле Project Name дадим проекту какое-либо название. В моем случае это HelloApp. А также укажем папку, где будет располагаться проект.

Создание первого проекта для F# в Visual Studio

На следующем окне Visual Studio предложит нам выбрать версию .NET, которая будет использоваться для проекта. Оставим установленную версию по умолчанию и нажмен на кнопку Create (Создать) для создания проекта.

Выбор версии .NET для F# в Visual Studio

После этого Visual Studio создаст и откроет нам проект:

Первый проект на F# для Visual Studio

В большом поле в центре, которое по сути представляет текстовый редактор, находится сгенерированный по умолчанию код F#.

Справа находится окно Solution Explorer, в котором можно увидеть структуру нашего проекта. В данном случае у нас сгенерированная по умолчанию структура: узел Dependencies - это узел содержит сборки dll, которые добавлены в проект по умолчанию. Эти сборки как раз содержат библиотеки .NET, которые могут использоваться в проекте F#.

Второй элемент структуры проекта - непосредственно сам файл кода программы Program.fs (Файлы с исходным кодом на языке F# помещаются в файлы с расширением .fs). Как раз этот файл и открыт в центральном окне.

Теперь вкратце разберем, что представляет собой автосгенерированный код файла Program.fs:

open System

// Определяем функцию from, которая принимает параметр whom
let from whom =
    sprintf "from %s" whom

[<EntryPoint>]
let main argv =
    let message = from "F#" // Вызываем функцию from 
    printfn "Hello world %s" message
    0 // возвращаем числовой код выхода из функции

Вначале идет вызов директивы open, которая подключает пространства имен. Пространства имен представляют собой организацию исходного кода в общие блоки. В данном случае подключается пространство имен System:

open System

После этого мы можем воспользоваться возможностями, которые предоставляет пространство имен System. Однако в данном автосгенерированном коде оно не используется, и в принципе эту строку в данном случае можно удалить.

Далее идет определение функции from:

let from whom =
    sprintf "from %s" whom

Определение функции начинается с ключевого слова let, после которого идет название функции, то есть в данном случае from.

После названия функции идут параметры функции. Здесь для функции from определен только один параметр - whom, который представляет некоторую строку.

После знака равно = идут действия, выполняемые функцией: sprintf "from %s" whom. Здесь применяется встроенная функция sprintf, которая выполняет форматирование текста, то есть, грубо говоря, объединяет различные значения в одну строку. В данном же случае она будет вставлять в строку "from %s" вместо символов %s значение параметра whom.

Дальше идет определение функции main, с которой будет начинаться выполнение программы:

[<EntryPoint>]
let main argv =
    let message = from "F#" // Вызываем функцию from 
    printfn "Hello world %s" message
    0 // возвращаем числовой код выхода из функции

Чтобы указать, что функция является входной точкой в программу, то есть с нее будет начинаться выполняться программы, над ней указывается атрибут [<EntryPoint>]

Определение функции main (также как и функции from) начинается с ключевого слова let, после которого указывается название функции - main и далее название параметров - argv.

Также как и в случае с функции from, после знака равно (=) указываются действия, выполняемые функцией. Однако теперь функция main выполняет по сути три действия, которые располагаются последовательно на трех строках.

Первое действие представляет вызов функции from:

let message = from "F#"

Здесь с помощью оператора let определяется переменная message, которая будет хранить результат вызова функции from. Как мы выше рассмотрели, функция from принимает один параметр - некоторую строку и создает отформатированный текст

Здесь в качестве параметра whom в функцию from передается строка "F#". Таким образом, функция from будет создавать строку "from F#". И эта строка будет храниться в переменной message

Второе действие представляет форматированный вывод на консоль:

printfn "Hello world %s" message

Встроенная функция printfn выводит на консоль некоторую строку. В данном случае такой строкой является "Hello world %s" message. Здесь мы опять сталкиваемся с форматированием. То есть в строку "Hello world %s" вместо символов %s будет вставляться содержимое переменной message.

Выше исходя из кода мы увидели, что переменная message будет представлять строку "from F#", поэтому в итоге на консоль будет выводиться текст "Hello world from F#".

И в конце идет третье действие - выход из функции.

0 // возвращаем числовой код выхода из функции

Функция, которая представляет входную точку в программу, должна возвращать числовой код, как правило, это число 0. Чтобы возвратить из функции число, достаточно указать его на последней строке функции.

Кроме собственно кода в файле можно заметить комментарии, которые идет после двух слешей //. При компиляции комментарии игнорируются и служат лишь для информационной цели - чтобы видеть, для какой цели служит тот или иной код.

Теперь мы можем запустить на выполнение с помощью клавиши F5 или с панели инструментов, нажав на зеленую стрелку. В итоге при запуске приложения на консоль должна быть выведена строка "Hello World from F#".

Первая программа на языке F# в Visual Studio

Изменение программы

Теперь изменим код файла на следующий:

open System // подключаемое пространство имен

[<EntryPoint>]
let main argv =

    printf "Введите свое имя: "
    let name = Console.ReadLine()  // вводим имя
    printfn "Привет %s" name        // выводим имя на консоль
    0

По сравнению с автоматически сгенерированным кодом я внес несколько изменений. Теперь в функции main первой строкой выводится приглашение к вводу.

printf "Введите свое имя: "

На второй строке определяется переменная name, в которую пользователь вводит информацию с консоли:

let name = Console.ReadLine()

Для получения ввода с консоли здесь используется встроенный класс Console платформы .NET, который находится в пространстве имен System. Это пространство подключено в начале с помощью директивы open. Без подключения пространства имен System я бы не смог использовать класс Console и получить введенную с консоли строку. Однако в принципе нам необязательно подключать пространство имен.

Мы можем даже удалить первую строку open System, но в этом случае мы тогда должны будем указать полный путь до используемого класса. Например, в нашем случае мы могли бы написать: let name = System.Console.ReadLine() .

Затем введенное имя выводится на консоль:

printfn "Привет %s" name

Теперь протестируем проект, запустив его на выполнение, также нажав на F5 или зеленую стрелочку.

Первое приложение на языке F# в Visual Studio

Итак, мы создали первое приложение. Его скомпилированный файл можно найти на жестком диске в папке проекта в каталоге bin\Debug\net5.0. Оно будет называться по имени проекта и иметь расширение exe. И затем этот файл можно будет запускать без Visual Studio, а также переносить его на другие компьютеры, где установлен .NET.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850