【发布时间】:2009-06-09 17:19:31
【问题描述】:
我很难使用 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:你最终做了什么?我不想禁用规则,但我希望像您描述的模式那样编写我的先决条件。
-
@Lieven:我们暂时保留了这条规则,并决定在我们的单行条件句中使用大括号。为此我们关闭了 StyleCop 规则 SA1501。
-
OffTopic:如果变量为空字符串,不要抛出 ArgumentNullException,你应该只将它用于空参数
-
@VitaliyUlantikov - 你会为空字符串抛出什么异常?
标签: stylecop