コードインスペクション: 列挙型の一部の値は 'switch' 式内で処理されず、デフォルトアームで例外によって処理されます。
switch 式を enum と一緒に使う場合、すべての列挙型の値にアームを用意する必要はありません ― これらの値は _ の discard で処理されます。
これは、作成者が重要でない値を処理することを目的としている場合があります。 ただし、 _ の discard で例外がスローされる場合、未処理の enum 値を持つ switch のすべての使用箇所でも例外がスローされます。これは、おそらく enum に新しい値を追加し、 switch の更新を忘れたことが原因と思われます。
enum MyColor { Red, Green, Blue }
string GetColor(MyColor color) => color switch
{
MyColor.Red => "Red",
MyColor.Green => "Green",
_ => throw new ArgumentOutOfRangeException(nameof(color))
};
// The value 'Blue' is not processed in the switch
// so this call will throw an exception
string TestColors => GetColor(MyColor.Blue);
2026 年 6 月 12 日