如何停止 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 解决问题。
假设我有以下代码:
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 解决问题。