Создание проектов через утилиту .NET CLI

Сборка и запуск проектов C# с помощью утилиты .NET CLI

Вернёмся в каталог C:\csdemo — это родительская папка для каталога HelloWorld из предыдущего урока.

Создайте новую папку командой mkdir HelloWorld2. Также можно создать папку вручную через правый клик мыши или

Затем перейдите в созданную папку через командную строку командой cd HelloWorld2

Выполните команду ниже для создания нового консольного приложения. console — это встроенное имя шаблона .NET CLI для генерации программ:

dotnet new consoleCode language: JavaScript (javascript)
C:\csdemo>mkdir HelloWorld

C:\csdemo>cd HelloWorld

C:\csdemo\HelloWorld>cd ..

C:\csdemo>mkdir HelloWorld2

C:\csdemo>cd HelloWorld2

C:\csdemo\HelloWorld2>dotnet new console
Шаблон «Консольное приложение» создан успешно.

Выполнение постобработки...
Восстановление пакетов для C:\csdemo\HelloWorld2\HelloWorld2.csproj:
Восстановление завершено.Code language: JavaScript (javascript)

Примечание: В .NET CLI есть множество шаблонов проектов для создания разных типов приложений: веб-сайтов на ASP.NET, графических десктопных программ Windows Forms и других.

После создания проекта откройте папку проекта для просмотра содержимого

Также в терминале можно выполнить команду dir для вывода списка всех файлов в папке

Вы увидите, что в каталоге появились три новых файла и одна папка

  1. Файл проекта: HelloWorld2.csproj
  2. Файл исходного кода C#: Program.cs
  3. Папка obj (здесь хранятся параметры компиляции, кэш и другие данные, нужные для сборки и запуска .NET)

Откройте файл HelloWorld2.csproj с помощью Блокнота

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>
Code language: HTML, XML (xml)

На моём компьютере установлен .NET 10, поэтому все новые проекты по умолчанию используют платформу net10.0

Откройте файл Program.cs, внутри находится стандартный готовый код

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");Code language: JavaScript (javascript)

Для компиляции и запуска программы выполните эту команду

dotnet run

При успешном запуске консоль выведет текст: Hello World!

Многие читатели с опытом программирования задаются вопросом: нам говорили, что точкой входа в программу является функция Main, почему здесь её не видно?

Это новая возможность .NET под названием инструкции верхнего уровня (без явного Main) — синтаксический сахар из новых версий C#. При написании короткого кода компилятор сам создаёт скрытую точку входа Main, убирая лишний шаблонный код

Полная развернутая версия вышеуказанного кода выглядит так:

using System;

namespace HelloWorld2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}Code language: JavaScript (javascript)

Снова запустите команду dotnet run

Код без проблем скомпилируется и запустится.

<Project Sdk="Microsoft.NET.Sdk">: указывает, что проект использует новый формат проектов SDK от .NET

<OutputType>Exe</OutputType>: говорит, что после компиляции получится исполняемый файл (обязательный параметр для консольных приложений)

<TargetFramework>net10.0</TargetFramework>: определяет, на какой версии платформы .NET 10.0 будет работать проект

// Подключаем встроенное пространство имён System, здесь находится класс консоли Console
using System;

// Определяем уникальное пространство имён HelloWorld2 для проекта, чтобы разделять классы разных проектов и избежать конфликтов имён
namespace HelloWorld2
{
    // Основной класс приложения, по умолчанию в шаблонах консоли .NET он называется Program
    class Program
    {
        /// <summary>
        /// Единственный метод входа в любую программу на C#, запускается автоматически при открытии приложения
        /// static: статический метод, его можно вызывать без создания экземпляра класса Program
        /// void: метод не возвращает никаких значений, после завершения работы не передаёт данные операционной системе
        /// string[] args: массив строк, хранит аргументы командной строки, переданные при запуске программы
        /// </summary>
        static void Main(string[] args)
        {
            // Console.WriteLine() — метод для вывода текста в консоль
            // WriteLine добавляет автоматический переход на новую строку после вывода
            // "Hello World!" — строка, которая будет напечатана в окне терминала
            Console.WriteLine("Hello World!");
        }
    }
}Code language: JavaScript (javascript)

Самая первая строка кода подключает пространство имён System, благодаря чему все его классы можно использовать напрямую без префикса System. Если эту строку убрать, придётся прописывать полное имя каждого класса.

В вызове Console.WriteLine выше Console — это название класса, а WriteLine — имя метода; смотрите правую верхнюю часть скриншота для примера.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *