A C#-konzolalkalmazás-sablon legfelső szintű utasításokat hoz létre
A .NET 6-tól kezdve az új C#-konzolalkalmazások projektsablonja a következő kódot hozza létre a Program.cs fájlban:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Az új kimenet a legújabb C# funkciókat használja, amelyek leegyszerűsítik a programhoz írandó kódot. A .NET 5-ös és korábbi verziói esetében a konzolalkalmazás-sablon a következő kódot hozza létre:
using System;
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Ez a két űrlap ugyanazt a programot képviseli. Mindkettő érvényes a C# 10.0-s számmal. Az újabb verzió használatakor csak a metódus törzsét Main
kell megírnia. A fordító létrehoz egy Program
belépésipont-metódussal rendelkező osztályt, és az összes legfelső szintű utasítást ebben a metódusban helyezi el. A létrehozott metódus neve nem Main
olyan implementációs részlet, amelyet a kód nem tud közvetlenül hivatkozni. A többi programelemet nem kell belefoglalnia, a fordító létrehozza őket. A C# útmutató alapjai című szakaszban a legfelső szintű utasításokról szóló cikkben további információt talál arról a kódról, amelyet a fordító generál, amikor felső szintű utasításokat használ.
A .NET 6+ sablonok használatához nem frissített oktatóanyagokkal két lehetőség közül választhat:
- Használja az új programstílust, és adjon hozzá új felső szintű utasításokat a funkciók hozzáadásakor.
- Konvertálja az új programstílust a régebbi stílusra egy
Program
osztály és egyMain
metódus használatával.
Ha a régi sablonokat szeretné használni, a cikk későbbi részében a régi programstílus használata című témakörben olvashat.
Az új programstílus használata
Az új programot egyszerűbbé tevő funkciók a legfelső szintű utasítások, a globális using
irányelvek és az implicit using
irányelvek.
A legfelső szintű utasítások kifejezés azt jelenti, hogy a fordító létrehozza a fő program osztály- és metóduselemeit. A fordító által létrehozott osztály- és belépésipont-metódus a globális névtérben deklarálva van. Megtekintheti az új alkalmazás kódját, és el tudja képzelni, hogy a korábbi sablonok által létrehozott metódusban, de a globális névtérben található utasításokat Main
tartalmazza.
Több utasítást is hozzáadhat a programhoz, ahogyan a hagyományos stílusban is hozzáadhat további utasításokat a metódushoz Main
. Elérheti args
(parancssori argumentumok), használhatja await
és beállíthatja a kilépési kódot. Függvényeket is hozzáadhat. Ezek helyi függvényekként jönnek létre, amelyek a létrehozott belépési pont metódusában vannak beágyazva. A helyi függvények nem tartalmazhatnak hozzáférési módosítókat (például public
protected
).
A legfelső szintű utasítások és az implicit using
irányelvek egyaránt leegyszerűsítik az alkalmazást alkotó kódot. Meglévő oktatóanyag követéséhez adjon hozzá minden új utasítást a sablon által létrehozott Program.cs fájlhoz. El tudja képzelni, hogy az ön által írt utasítások a metódus nyitott és záró zárójelei Main
között vannak az oktatóanyag utasításaiban.
Ha a régebbi formátumot szeretné használni, másolja a kódot a jelen cikk második példájából, és folytassa az oktatóanyagot a korábbiakhoz hasonlóan.
A legfelső szintű utasításokról az oktatóanyag felső szintű utasításokra vonatkozó feltárásában tudhat meg többet.
Implicit using
irányelvek
Az implicit irányelvek kifejezés azt jelenti, hogy a fordító automatikusan hozzáad egy irányelvkészletetusing
a projekt típusa alapján.using
Konzolalkalmazások esetében a következő irányelvek implicit módon szerepelnek az alkalmazásban:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
Más alkalmazástípusok több olyan névteret is tartalmaznak, amelyek gyakran előfordulnak az adott alkalmazástípusok esetében.
Ha implicit módon nem szereplő irányelvekre van szüksége using
, hozzáadhatja őket a legfelső szintű utasításokat tartalmazó .cs fájlhoz vagy más .cs fájlokhoz. Az alkalmazások összes .cs fájljában szükséges irányelvekhez using
használjon globális using
irányelveket.
Implicit using
irányelvek letiltása
Ha el szeretné távolítani ezt a viselkedést, és manuálisan szeretné vezérelni a projekt összes névterét, adja hozzá <ImplicitUsings>disable</ImplicitUsings>
a projektfájlhoz az <PropertyGroup>
elemben, ahogyan az alábbi példában látható:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Globális using
irányelvek
Egy globális using
irányelv egyetlen fájl helyett a teljes alkalmazás névterét importálja. Ezeket a globális irányelveket úgy lehet hozzáadni, hogy hozzáadunk egy <Using>
elemet a projektfájlhoz, vagy hozzáadjuk az global using
irányelvet egy kódfájlhoz.
Egy adott implicit using
direktíva eltávolításához hozzáadhat egy <Using>
attribútumot tartalmazó Remove
elemet is a projektfájlhoz. Ha például az implicit using
irányelvek funkció be van kapcsolva <ImplicitUsings>enable</ImplicitUsings>
, az alábbi <Using>
elem hozzáadásával eltávolítja a névteret az System.Net.Http
implicit módon importáltak közül:
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
A régi programstílus használata
A .NET SDK 6.0.300-astól kezdve a console
sablon rendelkezik egy --use-program-main
lehetőséggel. Segítségével létrehozhat egy olyan konzolprojektet, amely nem használ legfelső szintű utasításokat, és rendelkezik metódussal Main
.
dotnet new console --use-program-main
A generált Program.cs
adatok a következők:
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
A régi programstílus használata a Visual Studióban
Amikor új projektet hoz létre, a telepítési lépések a További információ beállítás lapjára lépnek. Ezen a lapon jelölje be a Ne használjon felső szintű utasításokat jelölőnégyzetet .
A projekt létrehozása után a tartalom a
Program.cs
következő:namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Megjegyzés:
A Visual Studio megőrzi a beállítások értékét, amikor legközelebb ugyanazon sablon alapján hozza létre a projektet, ezért alapértelmezés szerint a Konzolalkalmazás-projekt következő létrehozásakor a "Ne használjon legfelső szintű utasításokat" jelölőnégyzet be lesz jelölve.
A fájl tartalma eltérhet a Program.cs
Visual Studio globális szövegszerkesztő beállításaiban vagy a EditorConfig
fájlban definiált kódstílustól.
További információ: Hordozható, egyéni szerkesztőbeállítások létrehozása a Szerkesztőkonfiguráció és beállítások, Szövegszerkesztő, C#, Speciális beállításokkal.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: