为什么 switch 表达式不计入圈复杂度?

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,尽管代码正在执行完全相同的操作。圈复杂度真的降低了吗?如果是这样,怎么办?