我明白PROPERTIES超過FIELDS的優點,但我覺得使用AUTO實現的屬性而不是MANUAL實現的屬性並沒有真正提供任何優勢,除了使代碼更簡潔一些以外。使用自動實現的屬性超過手動實現的屬性的任何原因?
我感覺舒服多用:
private string _postalCode;
public string PostalCode
{
get { return _postalCode; }
set { _postalCode = value; }
}
相反的:
public string PostalCode { get; set; }
主要是因爲如果我想要做的任何種類的獲取和設置的自定義實現的,我要創建無論如何由私人領域支持我自己的財產。那麼爲什麼不從一開始就咬住子彈,並立即給予所有屬性這種靈活性,以保持一致性?考慮到您在Visual Studio中所做的所有操作都是單擊您的專用字段名稱,然後按Ctrl + E,即可完成,但這並不需要額外的時間。如果我手動執行,那麼最終會出現不一致性,其中有一些由專用字段支持的手動創建的公共屬性,以及一些自動實現的屬性。無論是全自動還是全部手動,我都感覺好多了。
這是我嗎?我錯過了什麼嗎?我誤解了什麼嗎?我是否過分強調一致性?我總是可以找到關於C#特性的合法討論,幾乎總是有優點和缺點,但在這種情況下,我確實找不到任何推薦使用自動實現屬性的人。
你說你現在可以這樣做 - 因爲將來你可能必須這樣做。爲什麼浪費時間做一些容易出錯的東西(你可能最終會複製和粘貼),只有在需要時才能做到這一點? – Rob
感謝羅布。我的推理是,使用Visual Studio,只需一次額外的按鍵即可創建手動實現的屬性,因此不會複製/粘貼。如果有一天我確實需要創建自己的實現,那麼我不會在自動實現的屬性和手動實現的屬性之間產生分歧,它是100%或100%。通過從一開始就充分利用手冊,我可以隨時創建自己的實現,而無需自動實現某些屬性,並且某些屬性是手動的。當然,我明白你的觀點。 – CptSupermrkt
在這種情況下,我和你一起堅持100%的手動執行。在VS 2010(至少)中遇到手動獲取/設置器 – Rob