2012-11-09 34 views
2

有沒有可以閱讀破線規則以保留在列內的指南?線拆分規則

我有下面的代碼,我的頁邊距設置爲80個字符(使之適合A4紙當我打印):

IDictionary<string, object> columns = new Dictionary<string, object>(1); 

的括號在第80列剛落下。所以,我要打破它,就像這樣:

IDictionary<string, object> columns = new Dictionary<string, object> 
    (1); 

或本:

IDictionary<string, object> columns = new Dictionary 
    <string, object>(1); 

或本:

IDictionary<string, object> columns = 
    new Dictionary<string, object>(1); 

或任何其他方式?我不想增加保證金。

謝謝。

+2

真的沒關係,但使用var會縮短這些聲明。 –

+0

@MitchWheat如果這是一個字段初始值設定項,則不能使用var。它也會改變它的意義(總是),因爲它被設置爲一個接口。 –

+0

看起來不像字段初始化...但真的我錯過了接口位.... –

回答

3

80個字符是不是法律 - 這是很高興有。而最好的辦法是在這裏:

var columns = new Dictionary<string, object>(1); 

決不中斷類型名,泛型參數,開放托架(這是確定繼續對下一行,如果你有很多參數)。因此,選項也(最好的一個 - 忘掉80個字符,並把所有成一行):

IDictionary<string, object> columns = new Dictionary<string, object>(1); 

和(如果行是真的長)

IDictionary<string, object> columns = 
     new Dictionary<string, object>(1); 

或分割轉讓和申報

IDictionary<string, object> columns; 
columns = new Dictionary<string, object>(1); 
+0

請注意,在這種情況下,這確實會改變含義。 (這可能沒有關係,但這與原來的聲明不一樣) –

+0

@ReedCopsey你是指最後一個?是的,它只會用於局部變量。 –

+0

我的意思是第一個(使用var),因爲它分配給接口,而不是類型。使用'var'會導致它創建變量爲'Dictionary ',而不是'IDictionary '... –

3

這實際上是個人偏好和慣例的問題。

我的選擇,如果你一定要拆,將是你最後的選擇:

IDictionary<string, object> columns = 
    new Dictionary<string, object>(1); 

我只說,因爲其他選項全部剝離在表達式中 - 在第一種情況下,你是將構造函數參數拆分爲自己的行,第二個將類型定義分成兩行。在這種情況下,整個語句(帶參數的構造函數)保持在一起。

這就是說,我可能不會分裂這一般。我可能會讓它流血超過80個字符(通常沒有任何問題)。