我的项目中有以下代码片段(我尽可能简化了它):
bool a = false, b = false, c = true;
int x = 0;
if ((a || b || c) && x != 1)
{
// do something
} else if ((a || b || c) && x < 0)
{
// do else
}
IntelliJ Rider IDE 为我提供了转换为 switch 语句,然后它给了我这个:
bool a = false, b = false, c = true;
int x = 0;
switch (a)
{
case true or true or true when x != 1:
// do something
break;
case true or true or true when x < 0:
// do else
break;
}
这是什么样的 switch 语法?
true or true or true when
是什么意思,看起来超级多余?最重要的是,b
和c
去哪儿了?
我没想到这种类型的重新格式化,我认为这一定是一个相当新的语言功能? 我检查了 C# 语言文档,但没有找到像这样的情况的解释...
提议的新代码似乎没有意义。