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

时间:2019-03-13 15:17:28

标签: visual-studio-2017 resharper

假设我有以下代码:

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

我想在其中带有注释的“默认”开关大小写,因为它表明我故意不处理0和1以外的任何值。如果我忽略默认大小写,则不清楚是否要执行任何操作,或只是忘记了。确实,如果删除默认情况,则会从错误窗口中显示的“ IDE0010填充开关”中得到错误。

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

我遇到的问题是,当我运行代码清理时,它将删除默认情况,包括注释。通常,我仍然希望代码清理可修复文件中的所有其他冗余,因此在代码清理配置文件中关闭“删除代码冗余”是不可行的。有没有办法避免不删除switch语句中的默认大小写?

编辑:似乎只有在代码清除窗口中选择“删除代码冗余”和任何“代码样式”的子级时,default例才被删除。如果我取消选择所有代码样式项,则不会删除默认大小写,或者如果我取消选择代码冗余,则也不会删除它。看来我可能不得不将此作为Resharper的一个错误提出。

1 个答案:

答案 0 :(得分:1)

所以我把这报告给了研究这个问题的喷气机。原来,“冗余空交换机部分”的设置存储在“团队共享”设置层中,并且代码清除使该设置从错误的层中拉出。

解决方案是转到Resharper->管理选项->双击“这台计算机”并在那里更改设置。

感谢Alexander Kurakin解决了这个问题。