代码检查:枚举中的某些值未在 'switch' 表达式中处理,而是通过 default 分支中的异常处理。
在使用 switch 表达式和 枚举 时,不需要为每个枚举值设置分支——这些值将在 _ 丢弃中处理。
这可能是作者为了处理一些不重要的值而有意为之。 但是,如果 _ 丢弃抛出异常,则所有使用 switch 表达式 且未处理 枚举 值的情况也会抛出异常,这可能是因为向 枚举 添加了新值却忘记相应更新 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);
最后修改日期: 2025年 9月 27日