Reading time 2 min.

Schwieriges Verhältnis: Switch-Ausdrücke und Blazor

Die Kombination aus Switch-Ausdrücken und Blazor kann zu Problemen führen. Aber es gibt Alternativen.
©

EMGenie

In Blazor stößt man manchmal auf unerwartete Einschränkungen, insbesondere wenn es um die Verwendung von Switch-Ausdrücken in der Anwendung geht. Laut einem Blogbeitrag von Steven Giesel können Switch-Ausdrücke, die in C# 8.0 eingeführt wurden und eine prägnantere Schreibweise für die Bedingungsauswertung bieten, in bestimmten Fällen nicht wie erwartet in Blazor eingesetzt werden.
Der Autor erklärt, dass der C#-Compiler in der Lage ist, diese Ausdrücke zu verarbeiten. Die Umwandlung in einfachen if-else-Anweisungen erfolgt, doch der Blazor-Quellcodegenerator hat Schwierigkeiten, diese Ausgaben richtig zu interpretieren. Dies führt zu einer Vielzahl von Kompilierungsfehlern, die Entwickler vor Herausforderungen stellen. Er zeigt Beispielcode, um zu verdeutlichen, was aus solchen Ausdrücken resultieren kann und welche Alternativen zur Verfügung stehen. Wenn man
public string GetGreeting(string name)
{
  return name switch
  {
    "Alice" => "Hello, Alice!",
    "Bob" => "Hello, Bob!",
    _ => "Hello, stranger!"
  };
} 

in Blazor verwendet, erscheinen häufig Fehler wie "Invalid expression term" oder "Syntax error". Um diesen Problemen zu entgehen, empfiehlt der Autor, entweder zu den klassischen if-else-Anweisungen zurückzukehren oder Switch-Anweisungen zu verwenden.

Latest Articles

„Sieh die KI als Juniorentwickler“
CTO Christian Weyer fühlt sich jung wie schon lange nicht mehr. Woran das liegt und warum er keine Angst um seinen Job hat, erzählt er im dotnetpro-Interview.
15 Minuten
Jun 27, 2025
Spotlight #1: Azure IoT Operations, Video Teil 1/3 - Azure IoT
Im Video erklärt Florian Bader unter anderem, was das Besondere bei IoT Hub, IoT Central, Edge und digital Twins ist.
1 Minute
Jun 27, 2025
Svelte – Frontend Framework für Vanilla-JavaScript
Svelte ist ein Framework für die Webentwicklung, der Dank Compiler extrem kleine Anwendungen für den Browser erzeugt.
3 Minuten
May 14, 2025
.NET Stack