version 4.0 - 13.0 (AI generated)

This commit is contained in:
jonas@geiger-natur.de
2025-09-28 17:52:30 +02:00
parent 90c5e758ff
commit 164f956c01
14 changed files with 927 additions and 0 deletions

65
Version13.0/README.md Normal file
View File

@@ -0,0 +1,65 @@
# 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.
```csharp
void PrintAll(params Span<int> zahlen) { /* ... */ }
```
### Neuer lock-Typ und Semantik
`lock` unterstützt jetzt `System.Threading.Lock` mit exklusivem Bereich und Dispose-Muster.
```csharp
lock (meinLock)
{
// exklusiver Bereich
}
```
### Neue Escape-Sequenz: `\e`
Das Escape-Zeichen (Unicode U+001B) kann als `\e` verwendet werden.
```csharp
char esc = '\e';
```
### Optimierungen bei Methodengruppen-Überlastauflösung
### Impliziter Indexerzugriff in Objektinitialisierern
Der Indexoperator `^` ist jetzt in Objektinitialisierungen erlaubt.
```csharp
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.
```csharp
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.