获得StyleCop规则SA1503 CurlyBracketsMustNotBeOmitted更加灵活

Ric*_*ett 5 stylecop

我在使用StyleCop规则SA1503(CurlyBracketsMustNotBeOmitted)时遇到了困难.

在我的代码中,我经常有一个模式:

public void SomeFunction(string someArg)
{
    if (string.IsNullOrEmpty(someArg)) throw new ArgumentNullException("someArg");

    // rest of the function here
}
Run Code Online (Sandbox Code Playgroud)

这背后的基本原理是在对单个参数进行多次验证检查和/或检查许多参数时保存垂直空间.这种检查中的逻辑通常简单而简洁,同样也适用于抛出的异常.

但是,我永远不会

if (someConditional)
    DoSomeStuff();
Run Code Online (Sandbox Code Playgroud)

我会一直写

if (someConditional)
{
    DoSomeStuff();
}
Run Code Online (Sandbox Code Playgroud)

总结如下:

  • 如果if语句分为多行,则使用大括号
  • 不要使用大括号进行简单的参数验证等,可以轻松(并且可读)放在一行上

StyleCop可以帮助我吗?

Tro*_*unt 7

如前所述,不幸的是,StyleCop规则是开启或关闭的,无法自定义.有一种简单的自定义规则的方法会很好,但不幸的是你需要从头开始编写它们.

我使用StyleCop的方法是专注于使用尽可能多的内置规则,并且我真正有一个规则的基本问题(例如代码文档),我只是将其关闭.我不太关心编写自定义规则的例外情况.