Nig*_*gel 6 c# cyclomatic-complexity c#-8.0
假设我有这个方法:
void DoStuff(int a)
{
int b;
switch (a)
{
case 1:
b = 5;
break;
case 2:
b = 100;
break;
default:
b = 0;
break;
}
Console.WriteLine(b);
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio 给出的圈复杂度为 4(在我看来,实际的圈复杂度是 3,但这不是重点)。
现在,如果我使用 switch 表达式重构代码,我会得到:
void DoStuff(int a)
{
int b = a switch
{
1 => 5,
2 => 100,
_ => 0
};
Console.WriteLine(b);
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio 现在表示圈复杂度为 1,尽管代码正在执行完全相同的操作。圈复杂度真的降低了吗?如果是这样,怎么办?