如何停止 resharper 删除空开关默认情况

How to stop resharper removing empty switch default case

假设我有以下代码:

    public static void PrintFoo(int i)
    {
        switch (i)
        {
            case 0:
                Console.WriteLine("bar!");
                break;
            case 1:
                Console.WriteLine("baz!");
                break;
            default:
                // do nothing
                break;
        }
    }

我想要 "default" switch case 和注释,因为它表明我故意不处理 0 和 1 以外的任何值。如果我省略默认情况,则不清楚我的意思是什么什么也不做,或者只是忘记了。事实上,如果我删除默认大小写,我会在错误 window.

中收到来自 "IDE0010 Populate switch" 的错误

默认情况下,Resharper 认为这是一个错误,所以我关闭了该检查(Resharper 选项 -> 检查严重性 -> C# -> 代码冗余 -> 冗余空开关部分)。

我遇到的问题是,当我 运行 代码清理时,它会删除默认大小写,包括注释。一般来说,我仍然希望代码清理来修复文件中的所有其他冗余,因此关闭代码清理配置文件中的 "Remove code redundancies" 不是一个选项。有没有办法让它不删除 switch 语句中的 default case?

编辑:似乎只有在代码清理 window 中,我 select 到 "Remove code redundancies" 和任何 child "Code style" 个。如果我 deselect 所有代码样式项,则不会删除 default 大小写,或者如果我 deselect 代码冗余,它也不会被删除。看来我可能不得不将此作为 Resharper 的错误提出。

所以我将此报告给调查该问题的 jetbrains。原来 "Redundant empty switch section" 的设置存储在 "Team shared" 设置层中,代码清理从错误的层中提取设置。

解决方案是转到 Resharper -> 管理选项 -> 双击 "this computer" 并更改那里的设置。

感谢 Alexander Kurakin 解决问题。