Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Az előző kódban a tényleges névtér a projekt nevétől függ.
Ez a két űrlap ugyanazt a programot képviseli. Mindkettő érvényes C#-ban. Az újabb verzió használatakor csak a Main metódus törzsét kell írnia. A fordító létrehoz egy Program osztályt egy belépési pont metódusával, és az összes legfelső szintű utasítást ebben a metódusban helyezi el. A létrehozott metódus neve nem Main, hanem egy 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 legfelső szintű utasítások című cikkben talál további információt 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ára 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
Programosztály és egyMainmetódus használatával.
Ha a régi sablonokat szeretné használni, tekintse meg a cikk későbbi részében a(z) Régi programstílus használata részt.
Az új programstílus használata
Az új programot egyszerűbbé tevő funkciók legfelső szintű utasítások, globális using irányelvek, és 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 Main metódusban, de a globális névtérben lévő utasításokat tartalmazza.
A programhoz több utasítást is hozzáadhat, ahogyan a hagyományos stílusban is hozzáadhat további utasításokat a Main metódushoz. Hozzáférhet 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 vagy protected).
A legfelső szintű utasítások és implicit using irányelvek egyszerű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 Main metódus nyitott és záró zárójelei 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 a legfelső szintű utasításokcímű oktatóanyagban olvashat bővebben.
Implicit using irányelvek
A implicit using irányelvek azt jelenti, hogy a fordító automatikusan hozzáad egy using irányelveket, a projekt típusa alapján. 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 olyan using direktívákra van szüksége, amelyek nem implicit módon szerepelnek, felveheti őket a legfelső szintű utasításokat vagy más .cs fájlokat tartalmazó .cs fájlba. Az alkalmazás minden egyes .cs fájljában szükséges using irányelvekhez használja a 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é szabályozni a projekt összes névterét, adja hozzá <ImplicitUsings>disable</ImplicitUsings> a projektfájlhoz a <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 egy névteret importál a teljes alkalmazáshoz. Ezek a globális irányelvek hozzáadhatók egy <Using> elem projektfájlhoz való hozzáadásával, vagy a global using irányelv kódfájlhoz való hozzáadásával.
A projektfájlhoz Remove attribútummal rendelkező <Using> elemet is hozzáadhat egy adott implicit using irányelveltávolításához. Ha például az implicit using irányelvek funkciója be van kapcsolva <ImplicitUsings>enable</ImplicitUsings>-nél, a <Using> elem következő hozzáadásával eltávolítja az importált implicit névterek közül a System.Net.Http névteret.
<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 --use-program-main lehetőséggel rendelkezik. Olyan konzolprojekt létrehozásához használható, amely nem használ legfelső szintű utasításokat, és Main metódussal rendelkezik.
dotnet new console --use-program-main
A létrehozott Program.cs a következő:
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
A régi programstílus használata a Visual Studióban
Új projekt létrehozásakor a beállítási lépések a További információk beállítási lapra 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
Program.cstartalma a következő:namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Jegyzet
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 Program.cs fájl tartalma eltérhet a Visual Studio globális szövegszerkesztő beállításaiban vagy a EditorConfig fájlban meghatározott kódstílustól.
További információ: Hordozható, egyéni szerkesztőbeállítások létrehozása az EditorConfig és Beállítások, Szövegszerkesztő, C#, Speciális.