C#-Referenz

Dieser Abschnitt enthält Referenzmaterial zu Schlüsselwörtern, Operatoren, Sonderzeichen, Präprozessordirektiven, Compileroptionen sowie Compilerfehlern und -warnmeldungen von C#.

In diesem Abschnitt

C#-Schlüsselwörter
Enthält Links zu Informationen über C#-Schlüsselwörtern und zur Syntax.

C#-Operatoren
Enthält Links zu Informationen über C#-Operatoren und zur Syntax.

C#-Sonderzeichen
Enthält Links zu Informationen über kontextbezogene Sonderzeichen in C# und deren Verwendung.

C#-Präprozessoranweisungen
Enthält Links zu Informationen über die Compilerbefehle zum Einbetten in C#-Quellcode.

C#-Compileroptionen
Enthält Informationen über Compileroptionen und ihre Verwendung.

C#-Compilerfehler
Enthält Codeausschnitte, die die Ursache und Korrektur der C#-Compilerfehler und -warnungen veranschaulichen.

C#-Programmiersprachenspezifikation
Die C# 6.0-Sprachspezifikation. Dies ist ein Entwurfsvorschlag für die C# 6.0-Sprache. Dieses Dokument wird durch die Zusammenarbeit mit dem Ecma International-Ausschuss für C#-Standards weiterentwickelt. Version 5.0 wurde im Dezember 2017 als Dokument Standard ECMA-334, 5. Edition veröffentlicht.

Die Features, die in C#-Versionen nach 6.0 implementiert wurden, werden in Sprachspezifikationsvorschlägen dargestellt. Diese Dokumente beschreiben die Deltas der Sprachspezifikation, um diese neuen Features hinzuzufügen. Sie liegen in Entwurfsform vor. Diese Spezifikationen werden weiterentwickelt und zur formellen Prüfung und Implementierung in eine zukünftige Version des C#-Standards an den Ecma International-Normungsausschuss weitergeleitet.

Vorschläge für die C# 7.0-Spezifikation
Es gibt eine Reihe neuer Features, die in C# 7.0 implementiert wurden. Dazu gehören der Musterabgleich, lokale Funktionen, out-Variablendeklarationen, throw-Ausdrücke, binäre Literale und Zahlentrennzeichen. Dieser Ordner enthält die Spezifikationen für jedes dieser Features.

Vorschläge für die C# 7.1-Spezifikation
In C# 7.1 wurden neue Features hinzugefügt. Erstens können Sie eine Main-Methode schreiben, die Task oder Task<int> zurückgibt. Dadurch können Sie den async-Modifizierer Main hinzufügen. Der default-Ausdruck kann ohne Typ an Stellen verwendet werden, an denen der Typ abgeleitet werden kann. Darüber hinaus können Tupelmembernamen abgeleitet werden. Schließlich kann Mustervergleich mit Generics verwendet werden.

Vorschläge für die C# 7.2-Spezifikation
C# 7.2 hat eine Reihe von kleinen Features hinzugefügt. Sie können Argumente durch einen schreibgeschützten Verweis mit dem Schlüsselwort in übergeben. Es gibt eine Reihe von Low-Level-Änderungen, die die Sicherheit zur Kompilierzeit für Span und verwandte Typen unterstützen. Sie können benannte Argumente verwenden, bei denen spätere Argumente in einigen Situationen positional sind. Mit dem private protected-Zugriffsmodifizierer können Sie festlegen, dass Aufrufer auf abgeleitete Typen beschränkt sind, die in derselben Assembly implementiert sind. Der ?:-Operator kann in einen Verweis auf eine Variable aufgelöst werden. Sie können auch hexadezimale und binäre Zahlen mit einem führenden Zifferntrennzeichen formatieren.

Vorschläge für die C# 7.3-Spezifikation
C# 7.3 ist eine weitere Unterversion, die mehrere kleine Aktualisierungen enthält. Sie können neue Einschränkungen für generische Typparameter verwenden. Weitere Änderungen erleichtern das Arbeiten mit fixed-Feldern, einschließlich der Verwendung von stackalloc-Zuordnungen. Lokale Variablen, die mit dem Schlüsselwort ref deklariert wurden, können neu zugewiesen werden, um sich auf neuen Speicher zu beziehen. Sie können Attribute für automatisch implementierte Eigenschaften festlegen, die auf das vom Compiler generierte Sicherungsfeld abzielen. Ausdrucksvariablen können in Initialisierern verwendet werden. Tupel können hinsichtlich ihrer Gleichheit (oder Ungleichheit) verglichen werden. Außerdem wurden einige Verbesserungen an der Überladungsauflösung vorgenommen.

Vorschläge für die C# 8.0-Spezifikation
C# 8.0 wird mit .NET Core 3.0 zur Verfügung gestellt. Zu den Features gehören Nullable-Verweistypen, rekursiver Musterabgleich, Standardschnittstellenmethoden, asynchrone Streams, Bereiche und Indizes, musterbasierte using-Anweisung und using-Deklarationen, NULL-Sammelzuweisungen sowie schreibgeschützte Instanzmember.

Vorschläge für die C# 9-Spezifikation
C# 9 wird mit .NET 5 zur Verfügung gestellt. Zu den Features zählen Datensätze, Anweisungen auf oberster Ebene, Erweiterungen zum Musterabgleich, Init-Only-Setter, zieltypisierte neue Ausdrücke, Modulinitialisierer, Erweiterungen für partielle Methoden, statische anonyme Funktionen, zieltypisierte bedingte Ausdrücke, kovariante Rückgabetypen, Erweiterungen für GetEnumerator in foreach-Schleifen, Parameter zum Verwerfen von Lambdaausdrücken, Attribute in lokalen Funktionen, Integer mit nativer Größe, Funktionszeiger, die Unterdrückung der Ausgabe des localsinit-Flags und nicht eingeschränkte Typparameteranmerkungen.

Vorschläge für die C# 10-Spezifikation
C# 10 wird mit .NET 6 zur Verfügung gestellt. Zu den Features gehören Datensatzstrukturen, parameterlose Strukturkonstruktoren, globale using-Anweisungen, Namespaces im Dateibereich, erweiterte Eigenschaftsmuster, verbesserte interpolierte Zeichenfolgen, konstant interpolierte Zeichenfolgen, Lambdaverbesserungen, Aufrufargumentausdrücke, erweiterte #line-Ausdrücke, generische Attribute, verbesserte Analyse der definitiven Zuweisung und AsyncMethodBuilder-Überschreibung.

Verwenden der Visual Studio-Entwicklungsumgebung für C#
Enthält Links zu konzeptionellen und aufgabenspezifischen Themen, in denen IDE und Editor beschrieben werden.

C#-Programmierhandbuch
Enthält Informationen zur Verwendung der C#-Programmiersprache.