作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
假设我有一个 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# 中有类似的东西吗?
我是一名优秀的程序员,十分优秀!