<分区>
假设我有一个 switch
来控制一些包含枚举的变量:
SomeEnum variable;
switch( variable ) {
case Option1:
Magic1;
break;
case Option2:
Magic2;
break;
default:
throw new InvalidOperationException();
}
而且我知道 switch
必须处理所有可能的枚举值,因此如果将新值添加到枚举中,则必须更改 switch
,这就是为什么我添加引发异常的 default
。
问题是在代码运行并且控制通过 default
并抛出异常之前没有错误指示(顺便说一句,异常可以在调用堆栈的某个地方被抑制)。
我想在这里有一个编译时错误。例如,Visual C++ 可以发出 C4062 warning当没有 default
并且一个或多个值未处理时,该警告可以升级为错误。我本可以在我的代码中删除 default
并利用该警告。
我可以在 C# 中有类似的东西吗?