C# 14 – Demo
Diese Seite zeigt dir vier neue Features aus C# 14 im direkten Vergleich: Vorher → Nachher. Du siehst jeweils alten C#-Code und wie derselbe Code mit C# 14 kürzer und moderner wird.
1. Primary Constructors
Endlich auch für Klassen – nicht nur für Records.
Vorher (älterer C#-Code):
public class Technology
{
public string Name { get; }
public int Year { get; }
public Technology(string name, int year)
{
Name = name;
Year = year;
}
public string Info() => $"{Name} erschien {Year}.";
}
var t = new Technology("ASP.NET Core", 2016);
var output = t.Info();
Nachher (C# 14):
public class Technology(string name, int year)
{
public string Name { get; } = name;
public int Year { get; } = year;
public string Info() => $"{Name} erschien {Year}.";
}
var t = new Technology("ASP.NET Core", 2016);
var output = t.Info();
Ausgabe:
ASP.NET Core erschien 2016.
2. Collection Expressions
Listen & Arrays ohne new List<T>().
Vorher:
var libs = new List<string> {
"Entity Framework",
"ASP.NET Core",
"MAUI"
};
var result = libs.Where(x => x.Contains("Core")).ToList();
Nachher:
var libs = [
"Entity Framework",
"ASP.NET Core",
"MAUI"
];
var result = libs.Where(x => x.Contains("Core")).ToList();
Ausgabe:
["ASP.NET Core"]
3. Params Spread Operator
Arrays in Methodenaufrufen sauber „entpacken“.
Vorher:
void Log(params string[] messages)
{
foreach (var m in messages)
Console.WriteLine(m);
}
var arr = new[] { "A", "B", "C" };
// Vor C#14:
Log(arr); // OK
Log("X", "Y"); // OK
// Aber arr kann nicht mit weiteren Parametern gemischt werden
Nachher:
void Log(params string[] messages)
{
foreach (var m in messages)
Console.WriteLine(m);
}
var arr = ["A", "B", "C"];
// C#14 erlaubt Params-Spreads:
Log(..arr, "X", "Y");
Ausgabe:
A B C X Y
4. Using Aliases für Namespaces & Typen
Mehr Ordnung → kürzere Codezeilen.
Vorher:
using System.Text.Json;
using System.Text.Json.Serialization;
var json = JsonSerializer.Serialize(new { Name = "Said" });
Nachher:
using Json = System.Text.Json.JsonSerializer;
using Writer = System.Text.Json.Serialization.JsonConverter;
var json = Json.Serialize(new { Name = "Said" });
Ausgabe:
{"Name":"Said"}