-2
爲什麼我會永遠想這樣做:爲什麼在公共領域使用屬性?
public T X { get; set; }
取而代之的是:
public T X;
人(包括SO一些答案)告訴我說:「如果你想要什麼以後更改行爲上?」是一個答案,但事實並非如此,因爲我可以將我public T X;
成
public T X {
get { blabla; }
set { blybly; }
}
編輯:之前發佈了網站關於「閱讀」和「閱讀」,你可以檢查鏈接。其中99%主要包含指向其他鏈接的其他人,而實際上沒有人給出正確的理由來使用屬性。
這裏是一個受歡迎的答案的一個例子:「你可以做二傳手私人
public T X { get; private set; }
很明顯嘛,如果我想要一個私人二傳手,我將創建一個屬性,但如果我不這樣做,爲什麼不呢?只使用一個領域呢?如果我決定以後我想要一個私人二傳手,爲什麼不能將我的字段從public T X;
更改爲public T X {get; private set; }
?
請參閱http://csharpindepth.com/Articles/Chapter8/PropertiesMatter.aspx –
「但這不是真的」 - 這取決於您是否關心二進制兼容性,源代碼兼容性,反射兼容性...... –
只是一個區別我的頭頂:反思。當你突然改變屬性時,你會破壞檢查字段的代碼。 –