天天看點

Always use Properties instead of Accessible Data Members - Effective C#學習筆記(1)

在Java的類庫中,很普遍的可以看到公有的資料成員,但在Dot Net類庫中,則很難看到。這很大程度上得益于C#的獨創文法Property。

很多人認為公有資料成員的效率要貌似比使用Property高,但是實際上是,編譯器會很聰明地幫我們優化代碼,是以在同等情況下,效率是不差的。如果沒有特殊需求的話,軟體更要關注的是代碼的可維護性,可讀行,擴充性。Property的靈活性是Data Member無法比拟的,而使用方法卻一樣簡潔。是以Effictive C#建議我們:Always Use Properties Insdead of Accessible Data Members.

Property最直覺的好處是可以把Setter和Getter分開編寫,可以給屬性設定隻讀或隻寫權限。

Property的本質其實還是方法。 其讀寫操作可以在内部任意加工操作。Property繼承了方法所有的優點。

1,在多線程程式中可以加鎖

2,可以在抽象類甚至于接口中聲明

3,支援各種繼承規則,并可以分别設定Setter和Getter(如protected的Setter ,Public的Getter)

4,支援Indexer

盡管有時會覺的寫一大串Property很啰嗦,有時候甚至完全沒有必要,但是為了軟體的未來可能的邊着想,現在多花點功夫還是值得的。