Files
2025-09-28 17:52:30 +02:00

1.8 KiB

C# Version 13.0

Freigegeben im November 2024.

Neue Features

params Collections

Der params-Modifikator ist jetzt für beliebige Sammlungen wie Span<T> und Schnittstellentypen erlaubt.

void PrintAll(params Span<int> zahlen) { /* ... */ }

Neuer lock-Typ und Semantik

lock unterstützt jetzt System.Threading.Lock mit exklusivem Bereich und Dispose-Muster.

lock (meinLock)
{
    // exklusiver Bereich
}

Neue Escape-Sequenz: \e

Das Escape-Zeichen (Unicode U+001B) kann als \e verwendet werden.

char esc = '\e';

Optimierungen bei Methodengruppen-Überlastauflösung

Impliziter Indexerzugriff in Objektinitialisierern

Der Indexoperator ^ ist jetzt in Objektinitialisierungen erlaubt.

var arr = new int[] { 1, 2, 3, 4 };
var obj = new MyClass { Werte = { [^1] = 99 } };

ref in Iteratoren und asynchronen Methoden

ref kann in nativen und unsicheren Kontexten in Iteratoren und async-Methoden verwendet werden.

ref struct-Typen implementieren Schnittstellen

ref struct-Typen können Schnittstellen implementieren.

ref struct Buffer : IBuffer { /* ... */ }

ref struct als Typargument in Generika

ref struct-Typen sind als Typargumente für Generika erlaubt.

Partielle Eigenschaften und Indexer

Teilweise deklarierte Eigenschaften und Indexer sind in partial-Typen möglich.

Überlastauflösung mit Priorität

Bibliotheksautoren können Überladungen als bevorzugt kennzeichnen.

Vorschau: field-Schlüsselwort

Das kontextbezogene Schlüsselwort field erlaubt Zugriff auf das Backing-Feld einer automatisch implementierten Eigenschaft.


C# 13.0 bringt neue Möglichkeiten für Sammlungen, Locking, Typen und Initialisierungen sowie weitere Optimierungen.