В приведенном вами примере на самом деле не так много. Однако выражения переключения полезны для объявления и инициализации переменных за один шаг. Например:
var description = reason switch
{
Reasons.Case1 => "string1",
Reasons.Case2 => "string2",
_ => throw new ArgumentException("Invalid argument")
};
Здесь мы можем объявить и инициализировать description
немедленно. Если бы мы использовали оператор switch, мы должны были бы сказать что-то вроде этого:
string description = null;
switch(reason)
{
case Reasons.Case1: description = "string1";
break;
case Reasons.Case2: description = "string2";
break;
default: throw new ArgumentException("Invalid argument");
}
Один недостаток выражений switch на данный момент (по крайней мере в VS2019) заключается в том, что вы не можете установить точку останова на индивидуальное состояние, только целое выражение. Однако с помощью операторов switch вы можете установить точку останова для отдельного оператора case.