我很难使用StyleCop规则SA1503(CurlyBracketsMustNotBeOmitted)。
在我的代码中,我经常有一个模式:
public void SomeFunction(string someArg)
{
if (string.IsNullOrEmpty(someArg)) throw new ArgumentNullException("someArg");
// rest of the function here
}
这背后的基本原理是在对单个参数进行多次验证检查和/或检查许多参数时保存垂直空间。这种检查中的逻辑通常简单而简洁,同样也适用于抛出的异常。
但是,我从不写
if (someConditional)
DoSomeStuff();
我总是写
if (someConditional)
{
DoSomeStuff();
}
总结如下:
StyleCop可以帮助我吗?
答案 0 :(得分:7)
正如已经提到的,不幸的是,StyleCop规则是开启或关闭的,无法自定义。有一个简单的自定义规则的方法会很好,但不幸的是你需要从头开始编写它们。
我使用StyleCop的方法是专注于尽可能多地使用内置规则,并且我确实存在规则的基本问题(例如代码文档),我只是将其关闭。我不太关心编写自定义规则的例外情况。
答案 1 :(得分:3)
StyleCop(我同意这里)希望你将它分成多行。它不喜欢if一行中的语句,因为(可以说是)正当理由 - 这会导致if语句的使用模式不一致,这是规则首先存在的原因之一。
要获得您正在展示的行为,您可能需要使用SDK为该特定情况编写自己的自定义规则,然后禁用默认规则。