2014-02-20 36 views
3

當表達式太長而不能適應顯示區域或源代碼整潔時,我們將用多行寫出長表達式。我試圖檢查相關的編程規則,但我找不到符號應該放在行末尾或下一行的第一行。當多行寫入長表達式時,該符號應該放在行尾還是下一行的第一行?

例如長IF表達在C#代碼,

if (!double.TryParse(text4Hours.Text, out outputValue)|| 
     !double.TryParse(text4Hours.Text, out outputValue)|| 
     !double.TryParse(text10Hours.Text, out outputValue)){ } 

OR

if (!double.TryParse(text4Hours.Text, out outputValue) 
     ||!double.TryParse(text4Hours.Text, out outputValue) 
     ||!double.TryParse(text10Hours.Text, out outputValue)){ } 

並行符號||可以放在行尾或下一行的第一行,任何規則指出我們必須遵循第一個還是第二個行?有什麼優勢這樣做?

另一個例子是

 answer = amount4Hours * double.Parse(text4Hours.Text) + 
       amount8Hours * double.Parse(text8Hours.Text) - 
        break45 * double.Parse(text8Hours.Text) + 
       amount10Hours * double.Parse(text10Hours.Text) - 
        break45 * double.Parse(text10Hours.Text); 

OR

  answer = amount4Hours * double.Parse(text4Hours.Text) 
        +amount8Hours * double.Parse(text8Hours.Text) 
         -break45 * double.Parse(text8Hours.Text) 
        +amount10Hours * double.Parse(text10Hours.Text) 
         -break45 * double.Parse(text10Hours.Text); 

我知道我們應該儘量避免有長的表達,但如果考慮到文本編輯器的顯示區域的原因是小的或者其他的問題,那麼這個問題仍然會彈出。 謝謝。

回答

2

我相信這個問題的任何答案都將基於意見,但我也相信大多數人會喜歡第一種方法。想象一下這樣的:

if (expression1 && 
     expression243787 && 
     expression3 && 
     expression938533485934 && 
     expression7247) 

現在想象一下,你發現在你的代碼中的錯誤,實現了邏輯錯誤是在這個表達式中,所有& &運營商應該是||代替。這可能只是一個意見,但我認爲,這將是很容易解決,如果代碼是這樣的:

if (expression1 
     && expression243787 
     && expression3 
     && expression938533485934 
     && expression7247) 

這只是說明了爲什麼我認爲這種做法使代碼重構變得容易的例子,除了其他好處,如可讀性。

+0

如果我們總是喜歡在同一條線上發表評論,我同意在這種情況下更好地放置符號以避免誤解 –

0

將符號放在下一行的開頭會更容易顯示符號。如果在前一行結束時,符號序列更難遵循。

+0

如果這些符號是OR符號,並且與我的示例相同!符號,我更喜歡把OR符號放在行尾,因爲||類似於 ! –

相關問題