我很难与StyleCop规则SA1503(CurlyBracketsMustNotBeOmitted)。获取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();
}
因此,在总结:
- 使用大括号如果if语句跨越分裂多行
- 不要使用花括号进行简单的参数验证等,可以很容易(并且可读)放在一条线上
StyleCop可以帮我吗?
@Richard E:你最终做了什么?我不想破坏这个规则,但我希望写出像你描述的模式一样的前提条件。 – 2009-06-23 13:59:13
@Lieven:暂时我们放弃了这条规则,并决定在我们的一行条件中使用大括号。为此,我们关闭了StyleCop规则SA1501。 – 2009-06-23 15:44:01
OffTopic:如果变量是空字符串,不要抛出ArgumentNullException,你应该只用于空参数 – 2011-12-16 16:22:32