在Visual Studio或Resharper中快速删除周围的语句

时间:2014-10-02 12:29:43

标签: c# .net visual-studio visual-studio-2013 resharper

我经常发现我需要删除嵌套语句,比如if条件变得无关紧要:

if (processFile != null && processFile.Exists)
{
    Process[] processesByName = GetProcesses(processFile.NameWithoutExt);
    if (processesByName.Length > 0)
    {
        return processesByName.ToList();
    }
}

return null;

Process[] processesByName = GetProcesses(processFile.NameWithoutExt);
if (processesByName.Length > 0)
{
    return processesByName.ToList();
}

return null;

麻烦的是必须手动找到两侧的花括号并删除它们,同时保留嵌套代码

  • 特别是对于较大的身体,不像这里的例子
  • 用Resharper快速擦除的方法吗?
  • 或者在Visual Studio本地?

3 个答案:

答案 0 :(得分:9)

Shift+delete剪切IF

支架上的

Alt+Enter可删除多余的括号。

答案 1 :(得分:2)

将条件更改为if (true || whatever)?我认为ReSharper会告诉你条件总是正确的,并且会提供删除它。

答案 2 :(得分:1)

一种解决方案,虽然可能不太理想:

  • 点击并拖动以标记您要保留的代码。
  • 使用Resharper命令“Surround with .. 。”并选择“#region”。
  • 现在,您可以使用新区域顶部的减号来折叠要保留的代码。
  • 删除#region
  • 周围的代码
  • 现在再次单击#region标题,然后选择Resharper选项“删除区域/ endregion指令”。

这不是一个完美的解决方案,但它可以帮助您更好地了解在使用比OP示例更大的代码块时您正在做的事情。

看起来应该是这样的(#region指令可以隐藏任何代码行):

enter image description here