Dot-Net

.NET 中自動屬性的用途

  • May 27, 2011

為什麼是這樣:

   public string Foo {get;set;}

認為比這更好:

   public string Foo;

我這輩子都搞不定。任何人都可以解釋一下嗎?

謝謝

因為您可以透明地(從客戶端程式碼的角度)更改 setter/getter 的實現,而您不能這樣做,如果您直接公開底層屬性(因為它不會是二進制兼容的。)

但是,與自動屬性相關的程式碼有一定的異味,因為它們使暴露類狀態的某些部分變得非常容易,無需再三思。Java 也遇到了這種情況,在許多項目中,您會發現get/setXxx到處都是暴露內部狀態的對(通常不需要它,“以防萬一”),這使得屬性基本上是公開的。

引用自:https://stackoverflow.com/questions/3386243