假设我有以下代码:
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 Populate switch”中的错误。
默认情况下,Resharper认为这是一个错误,所以我关闭了检查(Resharper选项 - >检查严重性 - > C# - >代码中的冗余 - >冗余空开关部分)。
我遇到的问题是,当我运行代码清理时,它会删除默认情况,包括注释。一般情况下,我仍然希望代码清理来修复文件中的所有其他冗余,因此不能选择关闭代码清理配置文件中的“删除代码冗余”。有没有办法让它不删除switch语句中的默认大小写?
编辑:似乎只有在代码清理窗口中,我选择“删除代码冗余”和“代码样式”的任何子代,才会删除default
案例。如果取消选择所有代码样式项,则不会删除默认情况,或者如果取消选择代码冗余,则也不会删除它。看起来我可能不得不把它作为Resharper的一个错误。
所以我向看过这个问题的喷气机队报告了这个问题。原来,“Redundant empty switch section”的设置存储在“Team shared”设置层中,代码清理是从错误的层中提取设置。
解决方案是去Resharper - >管理选项 - >双击“这台计算机”并在那里更改设置。
感谢Alexander Kurakin解决这个问题。