C# の switch 式
C# の switch 式
C# 8 から C# で switch 式 (switch expression) が使えるようになりました。
制御文としての switch 文 については「C# の switch 文」をご参照ください。
「式」 (expression) は評価されて一つの値をとるものをいいます。一方、「文」(statement) は処理を分岐したりするものの、評価されて一つの値をとるものではありません。
switch 式は次のように、 switch キーワードに続くコードブロックの中でファットアローの形式で、値と返す値の対応付けを記述します。
var m = 4;
var month = m switch
{
1 => "January",
2 => "February",
3 => "March",
4 => "April",
5 => "May",
6 => "June",
7 => "July",
8 => "August",
9 => "September",
10 => "October",
11 => "November",
12 => "December",
_ => ""
};
Console.WriteLine(month);
switch 式で複数の変数の組み合わせをマッチさせる
switch 式における値のマッチングで、複数の変数の値がマッチしたときに特定の値を返すには、タプルを利用します。
次の例では変数 a と b の両方の値がマッチしたときに、特定の文字列を返します。
var a = 1;
var b = 'Y';
var s = (a, b) switch
{
(1, 'X') => "A",
(1, 'Y') => "B",
(2, 'X') => "C",
_ => ""
};
Console.WriteLine(s);