Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab .NET 6 generiert die Projektvorlage für neue C#-Konsolen-Apps den folgenden Code in der Datei Program.cs:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Für .NET 5 und frühere Versionen generiert die Konsolen-App-Vorlage den folgenden Code:
using System;
namespace MyApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Im vorherigen Code hängt der tatsächliche Namespace vom Projektnamen ab.
Diese beiden Formen stellen dasselbe Programm dar. Beide sind in C# gültig. Wenn Sie die neuere Version verwenden, müssen Sie nur den Text der -Methode schreiben. Der Compiler generiert eine Klasse mit einer Einstiegspunktmethode und platziert alle Ihre Anweisungen auf oberster Ebene in dieser Methode. Der Name der generierten Methode wird nicht bekanntgegeben – es handelt sich um ein Implementierungsdetail, auf das Ihr Code nicht direkt verweisen kann. Sie müssen die anderen Programmelemente nicht einschließen. der Compiler generiert sie für Sie. Weitere Informationen zum Code, den der Compiler generiert, wenn Sie Anweisungen der obersten Ebene verwenden, finden Sie in den Anweisungen auf oberster Ebene im Abschnitt "Grundlagen des C#-Handbuchs".
Wenn Sie mit Lernprogrammen arbeiten, die nicht aktualisiert werden, um .NET 6+-Vorlagen zu verwenden, verwenden Sie eine der folgenden beiden Optionen:
- Verwenden Sie den neuen Programmstil, und fügen Sie beim Hinzufügen von Features neue Anweisungen der obersten Ebene hinzu.
- Konvertieren Sie den neuen Programmstil in den älteren Stil mit einer -Klasse und einer -Methode.
Wenn Sie die alten Vorlagen verwenden möchten, lesen Sie weiter unten in diesem Artikel Verwenden des alten Programmstils.
Verwenden Sie den neuen Programmstil
Die Features, die das neue Programm so einfach machen, sind Anweisungen der obersten Ebene, globale -Anweisungen und implizite -Anweisungen.
Der Begriff Anweisungen der obersten Ebene bedeutet, dass der Compiler die Klassen- und Methodenelemente für Ihr Hauptprogramm generiert. Der Compiler deklariert die generierte Klasse und Einstiegspunktmethode im globalen Namespace. Sehen Sie sich den Code für die neue Anwendung an, und stellen Sie sich vor, dass sie die Anweisungen in der Methode enthält, die von früheren Vorlagen generiert wurde, aber im globalen Namespace.
Fügen Sie dem Programm weitere Anweisungen hinzu, genau wie Sie Ihrer Methode im herkömmlichen Stil Anweisungen hinzufügen. Access (Befehlszeilenargumente) verwenden und den Ausgangscode festlegen. Sie können sogar Funktionen hinzufügen. Der Compiler erstellt sie als lokale Funktionen, die in der generierten Einstiegspunktmethode geschachtelt sind. Lokale Funktionen können keine Zugriffsmodifizierer enthalten (z. B. oder ).
Sowohl Anweisungen auf oberster Ebene als auch implizite -Anweisungen vereinfachen den Code, auf dem Ihre Anwendung beruht. Fügen Sie der von der Vorlage generierten Program.cs-Datei neue Anweisungen hinzu, um einem vorhandenen Tutorial zu folgen. Stellen Sie sich vor, dass die von Ihnen geschriebenen Anweisungen zwischen den geöffneten und geschlossenen geschweiften Klammern in der Methode in der Anleitung des Tutorials liegen.
Wenn Sie das ältere Format bevorzugen, kopieren Sie den Code aus dem zweiten Beispiel in diesem Artikel, und fahren Sie mit dem Lernprogramm wie zuvor fort.
Weitere Informationen zu Anweisungen auf oberster Ebene finden Sie im Tutorial zur Erkundung solcher Anweisungen.
Implizite -Anweisungen
De Begriff implizite -Anweisungen bedeutet, dass der Compiler automatisch eine Gruppe von -Anweisungen basierend auf dem Projekttyp hinzufügt. Bei Konsolenanwendungen sind die folgenden Direktiven implizit in der Anwendung enthalten:
using System;using System.IO;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Threading;using System.Threading.Tasks;
Andere Anwendungstypen enthalten weitere Namespaces, die für diese Anwendungstypen üblich sind.
Wenn Sie Direktiven benötigen , die nicht implizit enthalten sind, fügen Sie sie der .cs Datei hinzu, die Anweisungen auf oberster Ebene oder andere .cs Dateien enthält. Verwenden Sie globale Direktiven für Direktiven, die Sie in allen .cs-Dateien einer Anwendung benötigen.
Deaktivieren impliziter -Anweisungen
Um dieses Verhalten zu entfernen und alle Namespaces in Ihrem Projekt manuell zu steuern, fügen Sie der Projektdatei im Element hinzu, wie im folgenden Beispiel gezeigt:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Globale -Anweisungen
Eine globale -Anweisung importiert einen Namespace für Ihre gesamte Anwendung statt für eine einzelne Datei. Fügen Sie diese globalen Direktiven hinzu, indem Sie ein Element in die Projektdatei einschließen oder die Direktive zu einer Codedatei hinzufügen.
Um eine bestimmte implizite Direktive zu entfernen, fügen Sie ein Element mit einem Attribut zu Ihrer Projektdatei hinzu. Wenn z. B. das Feature für implizite -Anweisungen mit aktiviert wurde, wird durch das Hinzufügen des folgenden -Elements der Namespace aus den implizit importierten Namespaces entfernt:
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
Verwenden Sie den alten Programmstil
Seit .NET SDK 6.0.300 verfügt die Vorlage console über eine Option --use-program-main. Verwenden Sie es, um ein Konsolenprojekt zu erstellen, das keine Anweisungen der obersten Ebene verwendet und über eine Methode verfügt.
dotnet new console --use-program-main
Die generierte sieht wie folgt aus:
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Verwenden des alten Programmstils in Visual Studio
Wenn Sie ein neues Projekt erstellen, befolgen Sie die Einrichtungsschritte, die zur Einrichtungsseite Zusätzliche Informationen führen. Aktivieren Sie auf dieser Seite das Kontrollkästchen Keine Anweisungen der obersten Ebene verwenden.
Nachdem Ihr Projekt erstellt wurde, lautet der -Inhalt wie folgt:
namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Anmerkung
Visual Studio behält den Optionswert für das nächste Mal bei, wenn Sie ein Projekt basierend auf derselben Vorlage erstellen. Wenn Sie zuletzt ein Konsolen-App-Projekt mit aktiviertem Kontrollkästchen "Keine Anweisungen der obersten Ebene verwenden" erstellt haben, wird diese Option aktiviert, wenn Sie das nächste Konsolen-App-Projekt erstellen.
Der Inhalt der Datei Program.cs kann unterschiedlich ausfallen, um zum Code-Stil zu passen, der in den globalen Visual Studio Texteditor-Einstellungen oder der Datei EditorConfig definiert ist.
Weitere Informationen finden Sie unter Erstellen von portierbaren, benutzerdefinierten Editoreinstellungen mit EditorConfig und Optionen, Text-Editor, C#, Erweitert.