mirror of
https://github.com/JG2401/CsharpVersionHistory.git
synced 2026-08-28 20:20:10 +00:00
2.0 KiB
2.0 KiB
C# Version 10.0
Veröffentlicht im November 2021 mit .NET 6.
Neue Features
Datensatzstrukturen
Records können jetzt auch als Strukturen (record struct) definiert werden.
public record struct Punkt(int X, int Y);
Verbesserungen von Strukturtypen
Strukturen und anonyme Typen unterstützen jetzt with-Ausdrücke.
var p1 = new Punkt(1, 2);
var p2 = p1 with { X = 3 };
Handler für interpolierte Zeichenfolgen
Optimierte Verarbeitung von interpolierten Strings für bessere Performance.
Console.WriteLine($"Wert: {wert}");
global using-Direktiven
Globale using-Anweisungen für das gesamte Projekt.
// global using System;
Dateibezogene Namespacedeklaration
Einfachere Namespace-Deklaration am Dateianfang.
namespace MeinProjekt;
Erweiterte Eigenschaftenmuster
Präzisere Muster für Eigenschaften.
if (person is { Adresse.Stadt: "Berlin" }) { /* ... */ }
Verbesserungen bei Lambda-Ausdrücken
- Natürlicher Typ für Lambdas
- Rückgabetyp deklarierbar
- Attribute auf Lambdas möglich
Func<int, int> quad = x => x * x;
[Obsolete] Func<int, int> alt = x => x + 1;
Zeichenfolgeninterpolation für const-Strings
Konstante Strings können interpoliert werden, wenn alle Platzhalter konstant sind.
const string Name = "Jonas";
const string Begruessung = $"Hallo, {Name}!";
sealed ToString in records
ToString kann in record-Typen als sealed überschrieben werden.
Verbesserte Warnungen für Null-Status und Zuweisungen
Dekonstruktion: Zuweisung und Deklaration gleichzeitig möglich
AsyncMethodBuilder-Attribut für Methoden
CallerArgumentExpression-Attribut
Neues Format für #line-Pragma
Vorschaufeatures (nur mit <LangVersion>preview</LangVersion>)
- Generische Attribute
- Statische abstrakte Member in Schnittstellen
C# 10.0 bringt viele Verbesserungen für kompakteren, präziseren und leistungsfähigeren Code.