Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Начиная с .NET 6 шаблон проекта для новых консольных приложений C# создает следующий код в файле Program.cs:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Для .NET 5 и более ранних версий шаблон консольного приложения создает следующий код:
using System;
namespace MyApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
В приведенном выше коде фактическое пространство имен зависит от имени проекта.
Эти две формы представляют одну и ту же программу. Оба являются допустимыми в C#. При использовании более новой версии необходимо написать текст метода Main. Компилятор создает Program класс с методом точки входа, и помещает все инструкции верхнего уровня в этот метод. Имя созданного метода не является Main — это подробность реализации, на которую код не может ссылаться напрямую. Вам не нужно включать другие элементы программы; компилятор создает их для вас. Дополнительные сведения о коде, который компилятор создает при использовании инструкций верхнего уровня , см. в разделе "Основы руководства по C#".
При работе с учебниками, которые не обновляются для использования .NET 6+ шаблонов, используйте один из следующих двух вариантов:
- Используйте новый стиль программы, добавляя операторы верхнего уровня по мере добавления функций.
- Преобразуйте новый стиль программы в старый стиль с классом
Programи методомMain.
Если вы хотите использовать старые шаблоны, см. Использование старого стиля программы далее в этой статье.
Использование нового стиля программы
Функциональные возможности, которые упрощают новую программу, — это операторы верхнего уровня, глобальные директивы usingи неявные директивы using.
Термин инструкции верхнего уровня означает, что компилятор создает элементы класса и метода для вашей основной программы. Компилятор объявляет созданный класс и метод точки входа в глобальном пространстве имен. Просмотрите код нового приложения и представьте, что он содержит выражения в методе, сгенерированном более ранними шаблонами Main, но в глобальном пространстве имен приложения.
Добавьте больше операторов в программу, так же как вы добавляете операторы в метод Main в традиционном стиле.
Access args (аргументы командной строки),использовать awaitи задать код выхода. Вы даже можете добавлять функции. Компилятор создает их как локальные функции, вложенные в созданный метод точки входа. Локальные функции не могут включать модификаторы доступа (например, public или protected).
Операторы верхнего уровня и неявные директивы using упрощают код, составляющий приложение. Чтобы следовать существующему руководству, добавьте все новые инструкции в файл Program.cs, созданный шаблоном. Представьте, что инструкции, которые вы пишете, находятся между открытыми и закрывающими скобками в методе в Main инструкциях руководства.
Если вы предпочитаете старый формат, скопируйте код из второго примера в этой статье и продолжайте руководство, как и раньше.
Дополнительные сведения об инструкциях верхнего уровня см. в руководстве по инструкциям верхнего уровня.
Неявные директивы using
Термин неявные директивы using означает, что компилятор автоматически добавляет набор директив using на основе типа проекта. Для консольных приложений в приложение неявно включены следующие директивы:
using System;using System.IO;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Threading;using System.Threading.Tasks;
Другие типы приложений включают больше пространств имен, которые являются общими для этих типов приложений.
Если вам нужны директивы, которые не включены неявно, добавьте их в файл using, содержащий общие выражения верхнего уровня, или другие .cs файлы. Для директив using, необходимых для всех .cs файлов в приложении, используйте глобальные директивы using.
Отключение неявных директив using
Чтобы удалить это поведение и вручную управлять всеми пространствами имен в проекте, добавьте <ImplicitUsings>disable</ImplicitUsings> в файл проекта в <PropertyGroup> элементе, как показано в следующем примере:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Глобальные директивы using
Директива глобальной using импортирует пространство имен для всего приложения вместо одного файла. Добавьте эти глобальные директивы, включив <Using> элемент в файл проекта или добавив директиву global using в файл кода.
Чтобы удалить определенную неявную using директиву, добавьте <Using> элемент с атрибутом Remove в файл проекта. Например, если функция неявных директив using включена с помощью <ImplicitUsings>enable</ImplicitUsings>, добавление следующего элемента <Using> удаляет пространство имен System.Net.Http из тех, которые неявно импортированы:
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
Использование старого стиля программы
Начиная с пакета SDK .NET 6.0.300, шаблон console имеет параметр --use-program-main. Используйте его для создания консольного проекта, который не использует инструкции верхнего уровня и имеет метод Main.
dotnet new console --use-program-main
Созданный Program.cs выглядит следующим образом:
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Использование старого стиля программы в Visual Studio
При создании нового проекта шаги установки приведут вас на страницу Дополнительные сведения для настройки. На этой странице установите флажок Не использовать инструкции верхнего уровня.
После создания проекта содержимое
Program.csвыглядит следующим образом:namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Заметка
Visual Studio сохраняет значение параметра при следующем создании проекта на основе того же шаблона. Если вы создали проект консольного приложения с флажком "Не использовать инструкции верхнего уровня", этот параметр будет установлен при создании следующего проекта.
Содержимое файла Program.cs может отличаться от стиля кода, определенного в параметрах глобального текстового редактора Visual Studio или файла EditorConfig.
Для получения дополнительной информации см. Создание переносимых, настраиваемых параметров редактора с использованием EditorConfig и Параметры, Текстовый редактор, C#, Дополнительно.