mirror of
https://github.com/JG2401/CsharpVersionHistory.git
synced 2026-08-28 20:20:10 +00:00
version 4.0 - 13.0 (AI generated)
This commit is contained in:
98
Version7.2/README.md
Normal file
98
Version7.2/README.md
Normal file
@@ -0,0 +1,98 @@
|
||||
# C# Version 7.2
|
||||
|
||||
Veröffentlicht im November 2017.
|
||||
|
||||
Mit C# 7.2 wurden einige kleine, aber nützliche Sprachfeatures hinzugefügt:
|
||||
|
||||
## Neue Features
|
||||
|
||||
### Initialisierer für stackalloc-Arrays
|
||||
Direkte Initialisierung von Arrays auf dem Stack.
|
||||
|
||||
```csharp
|
||||
Span<int> zahlen = stackalloc int[] { 1, 2, 3 };
|
||||
```
|
||||
|
||||
### fixed-Anweisung für beliebige Typen
|
||||
`fixed` kann mit jedem Typ verwendet werden, der ein Muster unterstützt.
|
||||
|
||||
### Zugriff auf feste Felder ohne Anheften
|
||||
Erlaubt den Zugriff auf Felder, ohne sie explizit zu fixieren.
|
||||
|
||||
### Neuzuweisung lokaler ref-Variablen
|
||||
Ref-Variablen können neu zugewiesen werden.
|
||||
|
||||
```csharp
|
||||
ref int r = ref arr[0];
|
||||
r = ref arr[1];
|
||||
```
|
||||
|
||||
### readonly struct-Typen
|
||||
Strukturen können als unveränderlich deklariert werden.
|
||||
|
||||
```csharp
|
||||
public readonly struct Punkt
|
||||
{
|
||||
public int X { get; }
|
||||
public int Y { get; }
|
||||
}
|
||||
```
|
||||
|
||||
### in-Parameter
|
||||
Argumente werden als Referenz übergeben, aber nicht verändert.
|
||||
|
||||
```csharp
|
||||
void Print(in int x)
|
||||
{
|
||||
Console.WriteLine(x);
|
||||
}
|
||||
```
|
||||
|
||||
### ref readonly-Rückgaben
|
||||
Methoden können einen Wert als Referenz zurückgeben, ohne Schreibzugriff zu erlauben.
|
||||
|
||||
```csharp
|
||||
public ref readonly int GetValue() => ref value;
|
||||
```
|
||||
|
||||
### ref struct-Typen
|
||||
Strukturen, die direkt auf verwalteten Speicher zugreifen und nur auf dem Stack liegen dürfen.
|
||||
|
||||
```csharp
|
||||
ref struct Buffer { /* ... */ }
|
||||
```
|
||||
|
||||
### Allgemeinere Beschränkungen
|
||||
Mehr Flexibilität bei Generics.
|
||||
|
||||
### Nicht schließende benannte Argumente
|
||||
Positionale Argumente können auf benannte Argumente folgen.
|
||||
|
||||
```csharp
|
||||
Print("Hallo", times: 3);
|
||||
```
|
||||
|
||||
### Führende Unterstriche in numerischen Literalen
|
||||
Numerische Literale dürfen mit Unterstrichen beginnen.
|
||||
|
||||
```csharp
|
||||
int zahl = _1_000_000;
|
||||
```
|
||||
|
||||
### private protected-Zugriffsmodifizierer
|
||||
Zugriff für abgeleitete Klassen innerhalb derselben Assembly.
|
||||
|
||||
```csharp
|
||||
private protected int Wert;
|
||||
```
|
||||
|
||||
### Bedingte ref-Ausdrücke
|
||||
Das Ergebnis eines bedingten Ausdrucks kann ein Verweis sein.
|
||||
|
||||
```csharp
|
||||
ref int r = ref (a > b ? ref x : ref y);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
C# 7.2 brachte viele kleine Verbesserungen für Performance, Lesbarkeit und Sicherheit.
|
||||
Reference in New Issue
Block a user