© best_vector/Shutterstock.com
Windows Developer
BASTA!-Interview mit Christian Nagel

C# 8 – die neuen Features im Überblick

Mit dem Release von .NET Core 3.0 ist auch die Programmiersprache C# offiziell in Version 8 verfügbar. Christian Nagel klärte uns Ende September am Rande der BASTA! in Mainz darüber auf, welche neuen Features enthalten sind und wie man damit produktiv arbeiten kann.

Christian Nagel


Windows Developer: Hallo Christian! Du hast in deinem BASTA!-Talk die Neuerungen in C# 8 vorgestellt. Was sind aus deiner Sicht die Highlights der neuen Version? Christian Nagel: Mit C# 8 gibt es zahlreiche Änderungen, die die Produktivität verbessern können. Ein Highlight sind dabei sicher die Non-nullable Reference Types. Tony Hoare hat Null References bei der Programmiersprache ALGOL im Jahr 1965 eingeführt – und das später als „Billion Dollar Mistake“ bezeichnet. Praktisch alle anderen Programmiersprachen haben das nachgemacht.Auch bei .NET sind die am häufigsten auftretenden Exceptions vom Typ NullReferenceException. Diese Fehler sollen jetzt mit Non-nullable Reference Types vermieden werden. Ein paar Probleme gibt es bei der Umstellung schon noch, aber wir können erwarten, dass diese Exceptions mit C# 8 tatsächlich weniger werden. Async Streams, Ranges und Indices sowie Erweiterungen beim Pattern Matching sind weitere Highlights.WD: Kannst du einmal anhand eines Beispiels zeigen, was damit möglich ist?Nagel: Ich möchte da einmal die neue C# 8 Switch Expression zeigen – und das in Kombination mit dem C# 7 Tuple (Listing 1).Listing 1public (LightState Current, LightState Previous) GetNextLight(LightState currentLight, LightState previousLight)  => (currentLight, previousLight) switch { (LightState.FlashingYellow, _) => (LightState.Red, currentLight), (LightState.Red, _) => (LightState.Yellow, currentLight), (LightState.Yellow, LightState.Red) => (LightState.Green, currentLight), (LightState.Green, _) => (LightState.FlashingGreen, currentLight), (LightState.FlashingGreen, _) => (LightState.Yellow, currentLight), (LightState.Yellow, LightState.GreenBlink) => (LightState.Red, currentLight), _ => (LightState.FlashingYellow, currentLight) };public (LightState Current, LightState Previous) GetNextLight(LightState currentLight, LightState previousLight)  => (currentLight, previousLight) switch { (LightState.FlashingYellow, _) => (LightState.Red, currentLight), (LightState.Red, _) => (LightState.Yellow, currentLight), (LightState.Yellow, LightState.Red) => (LightState.Green, currentLight), (LightState.Green, _) => (LightState.FlashingGreen, currentLight), (LightState.FlashingGreen, _) => (LightState...

Windows Developer
BASTA!-Interview mit Christian Nagel

C# 8 – die neuen Features im Überblick

Mit dem Release von .NET Core 3.0 ist auch die Programmiersprache C# offiziell in Version 8 verfügbar. Christian Nagel klärte uns Ende September am Rande der BASTA! in Mainz darüber auf, welche neuen Features enthalten sind und wie man damit produktiv arbeiten kann.

Christian Nagel


Windows Developer: Hallo Christian! Du hast in deinem BASTA!-Talk die Neuerungen in C# 8 vorgestellt. Was sind aus deiner Sicht die Highlights der neuen Version? Christian Nagel: Mit C# 8 gibt es zahlreiche Änderungen, die die Produktivität verbessern können. Ein Highlight sind dabei sicher die Non-nullable Reference Types. Tony Hoare hat Null References bei der Programmiersprache ALGOL im Jahr 1965 eingeführt – und das später als „Billion Dollar Mistake“ bezeichnet. Praktisch alle anderen Programmiersprachen haben das nachgemacht.Auch bei .NET sind die am häufigsten auftretenden Exceptions vom Typ NullReferenceException. Diese Fehler sollen jetzt mit Non-nullable Reference Types vermieden werden. Ein paar Probleme gibt es bei der Umstellung schon noch, aber wir können erwarten, dass diese Exceptions mit C# 8 tatsächlich weniger werden. Async Streams, Ranges und Indices sowie Erweiterungen beim Pattern Matching sind weitere Highlights.WD: Kannst du einmal anhand eines Beispiels zeigen, was damit möglich ist?Nagel: Ich möchte da einmal die neue C# 8 Switch Expression zeigen – und das in Kombination mit dem C# 7 Tuple (Listing 1).Listing 1public (LightState Current, LightState Previous) GetNextLight(LightState currentLight, LightState previousLight)  => (currentLight, previousLight) switch { (LightState.FlashingYellow, _) => (LightState.Red, currentLight), (LightState.Red, _) => (LightState.Yellow, currentLight), (LightState.Yellow, LightState.Red) => (LightState.Green, currentLight), (LightState.Green, _) => (LightState.FlashingGreen, currentLight), (LightState.FlashingGreen, _) => (LightState.Yellow, currentLight), (LightState.Yellow, LightState.GreenBlink) => (LightState.Red, currentLight), _ => (LightState.FlashingYellow, currentLight) };public (LightState Current, LightState Previous) GetNextLight(LightState currentLight, LightState previousLight)  => (currentLight, previousLight) switch { (LightState.FlashingYellow, _) => (LightState.Red, currentLight), (LightState.Red, _) => (LightState.Yellow, currentLight), (LightState.Yellow, LightState.Red) => (LightState.Green, currentLight), (LightState.Green, _) => (LightState.FlashingGreen, currentLight), (LightState.FlashingGreen, _) => (LightState...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang