You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ReSharper为单行守卫子句强制添加单行大括号

配置ReSharper实现带单行大括号的守卫子句反转

我喜欢ReSharper的「反转if语句减少嵌套」功能,它贴合守卫子句技巧,但默认反转后的单行if没有大括号,按现有方法配置只能得到多行大括号的结果,我需要的是带单行大括号的反转效果。

示例对比

原始代码

if (!isPassed)
{
    string ruleId = testResultNode.Attributes["idref"].Value;
    string ruleTitle = GetRuleTitle(oval, ruleId);
}

ReSharper默认反转结果

if (isPassed) continue;
string ruleId = testResultNode.Attributes["idref"].Value;
string ruleTitle = GetRuleTitle(oval, ruleId);

期望的目标结果

if (isPassed) { continue; }

string ruleId = testResultNode.Attributes["idref"].Value;
string ruleTitle = GetRuleTitle(oval, ruleId);

当前错误结果(按现有方法配置后)

if (isPassed) 
{ 
    continue; 
}

string ruleId = testResultNode.Attributes["idref"].Value;
string ruleTitle = GetRuleTitle(oval, ruleId);

正确配置步骤

  1. 打开ReSharper设置(快捷键:Alt+Enter → 选择「ReSharper选项」,或菜单路径:ReSharper → Options)
  2. 导航到 代码编辑 → C# → 代码样式 → 大括号
    • 找到「对于简单语句(if/while/for等)」,设置为「总是使用大括号」
  3. 继续导航到 代码编辑 → C# → 换行与包装 → 大括号
    • 找到「简单块(if/for/foreach等的单语句块)」,勾选「将块放在与构造相同的行」
  4. 确保「反转if语句以减少嵌套」的检查规则处于启用状态(路径:代码检查 → 检查严重性,找到对应规则并设置为建议或警告)

完成以上配置后,ReSharper反转if语句时就会生成带单行大括号的守卫子句。

内容的提问来源于stack exchange,提问作者Man-D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:42:18