Sdílet prostřednictvím


Šablona konzolové aplikace jazyka C# generuje příkazy nejvyšší úrovně.

Počínaje .NET 6 vygeneruje šablona projektu pro nové konzolové aplikace jazyka C# následující kód v souboru Program.cs:

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

Pro .NET 5 a starších verzí vygeneruje šablona konzolové aplikace následující kód:

using System;

namespace MyApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

V předchozím kódu závisí konkrétní obor názvů na názvu projektu.

Tyto dvě formy představují stejný program. Oba jsou platné v jazyce C#. Pokud používáte novější verzi, stačí napsat pouze text metody Main. Kompilátor vygeneruje Program třídu s metodou vstupního bodu a umístí do této metody všechny příkazy nejvyšší úrovně. Název vygenerované metody není Main– jedná se o podrobnosti implementace, na které váš kód nemůže přímo odkazovat. Není nutné zahrnout ostatní prvky programu; kompilátor je vygeneruje za vás. Další informace o kódu, který kompilátor generuje při použití příkazů nejvyšší úrovně , naleznete v části Základy průvodce jazykem C#.

Při práci s kurzy, které nejsou aktualizované tak, aby používaly .NET šablony 6 nebo novější, použijte jednu z těchto dvou možností:

  • Při přidávání funkcí použijte nový styl programu a přidejte nové příkazy nejvyšší úrovně.
  • Převeďte nový styl programu na starší styl s Program třídou a metodou Main .

Pokud chcete použít staré šablony, přečtěte si část Použití starého stylu programu dále v tomto článku.

Použití nového stylu programu

Funkce, které zjednodušují nový program, jsou příkazy nejvyšší úrovně, globální using direktivy a implicitní using direktivy.

Výrazy nejvyšší úrovně znamenají, že kompilátor generuje elementy třídy a metody pro hlavní program. Kompilátor deklaruje vygenerovanou třídu a metodu vstupního bodu v globálním oboru názvů. Prohlédněte si kód nové aplikace a představte si, že obsahuje příkazy generované dřívějšími šablonami uvnitř Main metody, avšak v globálním oboru názvů.

Přidejte do programu další příkazy, stejně jako přidáváte příkazy do vaší metody v tradičním stylu. Access args (argumenty příkazového řádku),použijte awaita nastavte ukončovací kód. Můžete dokonce přidávat funkce. Kompilátor je vytvoří jako místní funkce vnořené uvnitř vygenerované metody vstupního bodu. Místní funkce nemůžou obsahovat žádné modifikátory přístupu (například public nebo protected).

Příkazy nejvyšší úrovně i implicitní using direktivy zjednodušují kód, který tvoří vaši aplikaci. Pokud chcete postupovat podle existujícího kurzu, přidejte do Program.cs souboru vygenerovaného šablonou všechny nové příkazy. Představte si, že příkazy, které napíšete, jsou mezi otevřenými a uzavíracími složenými závorkami v Main metodě v instrukcích kurzu.

Pokud dáváte přednost staršímu formátu, zkopírujte kód z druhého příkladu v tomto článku a pokračujte v kurzu stejně jako předtím.

Další informace o příkazech nejvyšší úrovně najdete v kurzu zkoumání příkazů nejvyšší úrovně.

Implicitní using direktivy

Výraz implicitní using direktivy znamená, že kompilátor automaticky přidá sadu direktiv založenýchusing na typu projektu. Pro konzolové aplikace jsou do aplikace implicitně zahrnuty následující direktivy:

  • using System;
  • using System.IO;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Net.Http;
  • using System.Threading;
  • using System.Threading.Tasks;

Mezi další typy aplikací patří různé obory názvů, které jsou pro tyto typy aplikací běžné.

Pokud potřebujete using direktivy, které nejsou implicitně zahrnuty, přidejte je do souboru .cs , který obsahuje příkazy nejvyšší úrovně nebo do jiných souborů .cs . Pro using direktivy, které potřebujete ve všech .cs souborech v aplikaci, použijte globální using direktivy.

Zákaz implicitních using direktiv

Chcete-li toto chování odebrat a ručně řídit všechny obory názvů v projektu, přidejte <ImplicitUsings>disable</ImplicitUsings> do souboru projektu v elementu <PropertyGroup> , jak je znázorněno v následujícím příkladu:

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

  <PropertyGroup>
    ...
    <ImplicitUsings>disable</ImplicitUsings>
  </PropertyGroup>

</Project>

Globální using direktivy

Globální using direktiva naimportuje obor názvů pro celou aplikaci místo jednoho souboru. Přidejte tyto globální direktivy zahrnutím <Using> položky do souboru projektu nebo přidáním direktivy global using do souboru kódu.

Pokud chcete odebrat konkrétní implicitní using direktivu<Using>, přidejte do souboru projektu položku s atributemRemove. Pokud je například zapnuta funkce implicitních using direktiv pomocí <ImplicitUsings>enable</ImplicitUsings>, přidáním následující položky <Using> se odebere obor názvů System.Net.Http z těch, které jsou implicitně importovány:

<ItemGroup>
  <Using Remove="System.Net.Http" />
</ItemGroup>

Použití starého stylu programu

Počínaje .NET SDK 6.0.300 má šablona console možnost --use-program-main. Slouží k vytvoření projektu konzoly, který nepoužívá příkazy nejvyšší úrovně a má metodu Main .

dotnet new console --use-program-main

Vygenerované Program.cs je následující:

namespace MyProject;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, World!");
    }
}

Použití starého stylu programu v Visual Studio

  1. Když vytvoříte nový projekt, kroky nastavení vás přesměrují na stránku Další informace o nastavení. Na této stránce zaškrtněte políčko Nepoužívat příkazy nejvyšší úrovně .

    Visual Studio nepoužívejte zaškrtávací políčko příkazy nejvyšší úrovně

  2. Po vytvoření Program.cs projektu bude obsah následující:

    namespace MyProject;
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
    

Poznámka

Visual Studio zachová hodnotu možnosti při příštím vytvoření projektu na základě stejné šablony. Pokud jste naposledy vytvořili projekt konzolové aplikace se zaškrtávacím políčku Nepoužívat příkazy nejvyšší úrovně , je tato možnost zaškrtnutá při vytváření dalšího projektu konzolové aplikace. Obsah souboru Program.cs se může lišit podle stylu kódu definovaného v nastavení globálního Visual Studio textového editoru nebo souboru EditorConfig.

Další informace naleznete v tématu Vytváření přenosných, vlastních nastavení editoru pomocí EditorConfig and Options, Text Editor, C#, Advanced.