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.
C#-Programme bestehen aus einer oder mehreren Dateien. Jede Datei enthält null oder mehr Namespaces. Ein Namespace enthält Typen wie Klassen, Strukturen, Schnittstellen, Enumerationen und Delegaten oder andere Namespaces. Das folgende Beispiel ist das Skelett eines C#-Programms, das alle diese Elemente enthält.
using System;
Console.WriteLine("Hello world!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
}
Das vorherige Beispiel verwendet Top-Level-Anweisungen als Einstiegspunkt des Programms. Nur eine Datei kann Anweisungen auf oberster Ebene enthalten. Der Einstiegspunkt des Programms ist die erste Textzeile des Programmtexts in dieser Datei. In diesem Fall ist dies Console.WriteLine("Hello world!");
.
Sie können auch eine statische Methode namens Main
als Einstiegspunkt des Programms erstellen, wie im folgenden Beispiel gezeigt:
// A skeleton of a C# program
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
}
}
In diesem Fall startet das Programm in der öffnenden Klammer der Main
Methode, die Console.WriteLine("Hello world!");
ist.
Erstellen und Ausführen von C#-Programmen
C# ist eine kompilierte Sprache. In den meisten C#-Programmen verwenden Sie den dotnet build
Befehl, um eine Gruppe von Quelldateien in ein Binärpaket zu kompilieren. Anschließend verwenden Sie den dotnet run
Befehl, um das Programm auszuführen. (Sie können diesen Prozess vereinfachen, da dotnet run
das Programm kompiliert, bevor Sie es ausführen, falls erforderlich.) Diese Tools unterstützen eine Vielzahl von Konfigurationsoptionen und Kommandozeilen-Schaltern. Die dotnet
Befehlszeilenschnittstelle (CLI), die im .NET SDK enthalten ist, bietet viele Tools zum Generieren und Ändern von C#-Dateien.
Ab C# 14 und .NET 10 können Sie dateibasierte Programme erstellen, die das Erstellen und Ausführen von C#-Programmen vereinfachen. Sie verwenden den dotnet run
Befehl, um ein Programm auszuführen, das in einer einzelnen *.cs
Datei enthalten ist. Wenn beispielsweise der folgende Codeausschnitt in einer Datei mit dem Namen hello-world.cs
gespeichert ist, können Sie ihn ausführen, indem Sie Folgendes eingeben dotnet run hello-world.cs
:
#!/usr/local/share/dotnet/dotnet run
Console.WriteLine("Hello, World!");
Die erste Zeile des Programms enthält die #!
Sequenz für Unix-Shells. Die Position der dotnet
CLI kann je nach Verteilung variieren. Wenn Sie die Ausführungsberechtigung (+x
) für eine C#-Datei auf einem beliebigen Unix-System festlegen, können Sie die C#-Datei über die Befehlszeile ausführen:
./hello-world.cs
Die Quelle für diese Programme muss eine einzelne Datei sein, andernfalls ist alle C#-Syntax gültig. Sie können dateibasierte Programme für kleine Befehlszeilenprogramme, Prototypen oder andere Experimente verwenden. Dateibasierte Programme ermöglichen Präprozessordirektiven , die das Buildsystem konfigurieren.
Ausdrücke und Anweisungen
C#-Programme werden mithilfe von Ausdrücken und Anweisungen erstellt. Ausdrücke erzeugen einen Wert, und Anweisungen führen eine Aktion aus:
Ein Ausdruck ist eine Kombination aus Werten, Variablen, Operatoren und Methodenaufrufen, die zu einem einzelnen Wert ausgewertet werden. Ausdrücke erzeugen ein Ergebnis und können überall verwendet werden, wo ein Wert erwartet wird. Die folgenden Beispiele sind Ausdrücke:
42
(Literalwert)x + y
(arithmetische Operation)Math.Max(a, b)
(Methodenaufruf)condition ? trueValue : falseValue
(Bedingter Ausdruck)new Person("John")
(Objekterstellung)
Eine Anweisung ist ein vollständiges Kommando, das eine Aktion ausführt. Anweisungen geben keine Werte zurück; Stattdessen steuern sie den Programmfluss, deklarieren Variablen oder führen Vorgänge aus. Die folgenden Beispiele sind Aussagen:
int x = 42;
(Deklaration)Console.WriteLine("Hello");
(Ausdrucksanweisung – umhüllt einen Methodenaufruf-Ausdruck)if (condition) { /* code */ }
(bedingte Anweisung)return result;
(return-Anweisung)
Der wichtigste Unterschied: Ausdrücke evaluieren Werte, während Anweisungen Aktionen ausführen. Einige Konstrukte, z. B. Methodenaufrufe, können beides sein. Beispielsweise ist Math.Max(a, b)
ein Ausdruck, wenn er in int result = Math.Max(a, b);
verwendet wird, aber er wird zu einer Ausdrucksanweisung, wenn er allein als Math.Max(a, b);
geschrieben steht.
Ausführliche Informationen zu Aussagen finden Sie unter Aussagen. Informationen über Member mit Ausdrucks-Body und andere Funktionen von Ausdrücken finden Sie unter Member mit Ausdrucks-Body.
Verwandte Abschnitte
Informationen zu diesen Programmelementen finden Sie im Abschnitt Typen im Leitfaden zu den Grundlagen:
C#-Sprachspezifikation
Weitere Informationen finden Sie unter Grundlegenden Konzepte in der C#-Sprachspezifikation. Die Sprachspezifikation ist die endgültige Quelle für C#-Syntax und -Verwendung.