switch-statement - это обычный switch, который
int result;
switch(something) {
case "a":
result = 1;
break;
case "b":
result = 2;
break;
default:
result = 3;
break;
}
switch-expression - это новый вид управляющей конструкции, который добавили в C# 8
var result = something switch {
"a" => 1,
"b" => 2,
_ => 3
}
Его особенности по сравнению с switch-statement:
1. Он exhaustive - это значит, что компилятор заставит вас обработать все возможные варианты, в отличие от switch-statement
2. Это выражение. Это значит, что результат его выполнения можно положить в переменную.
switch-expression относится к switch-statement также, как тернарный оператор относится к if.
Подробнее читать тут:
https://docs.microsoft.com/en-us/dotnet/csharp/lan...
https://docs.microsoft.com/en-us/dotnet/csharp/lan...