Dot-Net
.NET 中自動屬性的用途
為什麼是這樣:
public string Foo {get;set;}認為比這更好:
public string Foo;我這輩子都搞不定。任何人都可以解釋一下嗎?
謝謝
因為您可以透明地(從客戶端程式碼的角度)更改 setter/getter 的實現,而您不能這樣做,如果您直接公開底層屬性(因為它不會是二進制兼容的。)
但是,與自動屬性相關的程式碼有一定的異味,因為它們使暴露類狀態的某些部分變得非常容易,無需再三思。Java 也遇到了這種情況,在許多項目中,您會發現
get/setXxx到處都是暴露內部狀態的對(通常不需要它,“以防萬一”),這使得屬性基本上是公開的。