gpt4 book ai didi

c# - 当开关不处理一个或多个枚举值时,我可能会出现 C# 编译时错误吗?

转载 作者:太空狗 更新时间:2023-10-29 21:09:11 28 4
gpt4 key购买 nike

假设我有一个 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# 中有类似的东西吗?

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com