2013-09-05 153 views
0

關於C#中的最佳做法只是有幾個問題:通用C#最佳實踐

任何原因,我更願意做的事:的

var list = new List<string>(); 
object[] array = list.ToArray<object>(); 
comboBox.AddRange(array); 

代替:

var list = new List<string>(); 
comboBox.AddRange(list.ToArray<object>()); 

而且任何我寧願這樣做的原因:

class myClass 
{ 
    private string _hello; 

    public string Hello 
    { 
     get {return _hello;} 
     set {_hello = value;} 
    } 
} 

替代:

class myClass 
{ 
    public string Hello; 
} 
+4

問一個問題一次,除非它們是相互關聯的,加上你的第二個問題到一個新問題 –

+0

有沒有gol den規則。我建議你遵循的主要觀點是首先要確定可讀性(以及可維護性)和一致性(總是相同的結構更容易理解)。也就是說,第二個片段的夫婦並不相同。屬性不是字段。或者你的意思是自動屬性('公共字符串你好{get; set;}')? –

+2

第一個例子是可讀性和偏好的問題和第二示例做不同的事情。 – user1477388

回答

2

你的第一個例子,是創建一箇中間變量來存放轉換陣列 - 如果你不需要陣列以後那麼在邏輯上他們是等價的。

你的第二個問題是一個更爲顯著差異。屬性有在田野許多優點,包括在get/set訪問潛在邏輯,綁定到UI控件(大多數控件可以綁定到任何公共數據成員應改爲實現爲屬性的屬性,但不能領域。

一般的領域。非公有制數據成員可以被實現爲。

上,這樣回答你的第二個問題有lots of answers

+0

不要忘記二進制兼容性... –

+0

好的,理解第一個是可讀性比其他任何更多,但不是第一個例子最終需要更多的內存和時間來處理,因爲它首先需要保存結果的操作放到一個變量上,然後讀取該變量的結果? – cogumel0

+2

@ cogumel0否 - CLR將以任何方式創建內存。事實上,如果你不在其他地方使用該變量,編譯器甚至可以內聯該調用。 –