我很難與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