25 Mar 2021 - Matthias Voigt
Mit der Veröffentlichung von .NET 5 und C# 9.0 hat Microsoft eine Reihe spannender neuer Features eingeführt, die die Entwicklung in C# noch leistungsfähiger und angenehmer machen. In diesem Artikel möchte ich einige der wichtigsten Neuerungen in C# 9.0 vorstellen.
Rekord-Typen sind eine der herausragendsten Neuerungen in C# 9.0. Sie ermöglichen es, unveränderliche Datentypen mit minimalem Boilerplate-Code zu erstellen. Hier ein einfaches Beispiel:
public record Person(string FirstName, string LastName);
Mit nur einer Zeile Code haben wir einen unveränderlichen Datentyp erstellt, der automatisch Methoden wie ToString()
, Equals()
und GetHashCode()
generiert.
Init-Only Setter ermöglichen es, Eigenschaften eines Objekts nur während der Initialisierung festzulegen. Dies fördert die Immutabilität und macht den Code sicherer:
public class Car
{
public string Make { get; init; }
public string Model { get; init; }
}
Das Mit-Muster ermöglicht es, ein Objekt basierend auf einem vorhandenen Objekt zu erstellen, wobei einige Eigenschaften geändert werden. Dies ist besonders nützlich in Verbindung mit Rekord-Typen:
var person1 = new Person("John", "Doe");
var person2 = person1 with { LastName = "Smith" };
C# 9.0 bringt auch Verbesserungen bei den Musterabgleichen. Neue Muster wie and
, or
und not
ermöglichen komplexere und ausdrucksstärkere Bedingungen:
public static string Classify(object obj) => obj switch
{
int i when i > 0 => "Positive integer",
int i when i < 0 => "Negative integer",
string s => "String",
_ => "Unknown"
};
Top-Level-Statements ermöglichen es, einfache Programme ohne explizite Main
-Methode zu schreiben. Dies ist besonders nützlich für Skripting und kleine Utility-Programme:
using System;
Console.WriteLine("Hello, World!");
Ein wichtiger Unterschied zwischen Rekord-Typen und regulären Klassen ist, dass Rekord-Typen für unveränderliche Datenstrukturen optimiert sind. Während Klassen in der Regel veränderlich sind, bieten Rekord-Typen eine sicherere und weniger fehleranfällige Alternative.
C# 9.0 bringt eine Vielzahl nützlicher Features, die die Entwicklung mit der Sprache effizienter und angenehmer machen. Von Rekord-Typen über Init-Only Setter bis hin zu verbesserten Musterabgleichen bietet die neue Version viele Möglichkeiten, den Code sauberer und ausdrucksstärker zu gestalten. Es lohnt sich definitiv, diese neuen Features in zukünftigen Projekten zu nutzen und zu erkunden.
Für weitere Details und eine ausführliche Anleitung zu den neuen Features in C# 9.0 besuche die offizielle Microsoft-Dokumentation.