首先,我已閱讀了關於此主題的帖子列表,並且我並不認爲我已經掌握了屬性,因爲我已經瞭解了封裝和字段修飾符(私有,公共...等)。屬性與字段:需要幫助掌握屬性在字段上的用法
我已經學習了C#的一個主要方面,就是使用封裝在代碼中保護數據的重要性。我'認爲'我明白這是因爲使用修飾語(私人,公共,內部,受保護)的能力。然而,在瞭解了屬性之後,我不僅在理解屬性的使用方面存在困難,而且在理解C#中數據保護的整體重要性/能力(我認爲是封裝)。
更具體地講,一切我已閱讀,當我在C#中得到了性質是,你應該嘗試使用他們在的地方字段時,你可以因爲:
1)它們允許你如果直接直接訪問字段時無法更改數據類型。
2)他們的保護級別添加到數據訪問
然而,從我「想」我是來了解採用現場改性劑做了#2,這在我看來,性質只是生成額外的代碼,除非你有理由改變類型(#1) - 因爲你(或多或少)創建隱藏的方法來訪問字段,而不是直接。
然後就是可以將所有修飾符添加到屬性中,這進一步使我對需要屬性訪問數據的理解變得複雜。
我已經閱讀了許多關於「屬性」的不同作者的章節,沒有一篇真正解釋了對屬性與字段與封裝(以及良好的編程方法)的良好理解。
有人能解釋一下:
1)我爲什麼要使用屬性,而不是領域(尤其是當它出現,我只是添加額外的代碼
2)上的任何提示在追蹤其他人的代碼時,認識到使用屬性並且不把它們視爲簡單的方法(除get; set是顯而易見的)?
3)任何一般的經驗法則,當涉及到什麼時候使用什麼好的編程方法?
感謝和抱歉的長篇文章 - 我不想問一個已經被問到100x的問題,而沒有解釋我爲什麼再次提問。
重複? http://stackoverflow.com/questions/2911945/method-calling-public-private-members-or-methods-best-practice-c-net/ – 2010-06-18 13:24:07
似乎沒有人鏈接到[爲什麼屬性](http:///csharpindepth.com/Articles/Chapter8/PropertiesMatter.aspx)。在過去,我發現這個概述很有幫助。 – R0MANARMY 2010-06-18 14:19:04