天天看點

C#基礎知識回顧-- 屬性與字段

  今天在公共汽車上,突然想屬性和字段到底有什麼差別?很多字段屬性都存在 get{}和set{} 和普通的變量沒什麼差別(可讀可寫)

我就感覺屬性就是給字段一個多的選擇方式,有的字段是不允許更改的..

  剛寫程式時總覺得一個字段就能滿足要求,何必要使用定義起來麻煩的屬性

要get、set的去定義,代碼量還大,真不知道他們的差別和優點

例:

myclass.A 和 myclass.Getval可能實作同樣功能,為什麼一定要用定義屬性?

現在簡單總結下屬性較普通變量的優點:

1、資料安全

  因為A是個公有變量,在類的外部可以任意更改,為了防止因使用者任意更改,可用屬性get、set來限制_B的的隻讀、隻寫或控制_B的最大或最小

引用一位老兄的簡答:"其實自定義變量已經預設實作了屬性,隻是簡單的讀寫而已,我們定義的屬性要在讀寫的基礎上加上更多限制,以後你學的多

了就會發現, 很多東西都是為了資料安全而加入的,說白了就是限制,例如接口,接口中的方法你必須(注意是必須,強制性的)要實作"

2、OOP和程式設計的一個原則就是資料封裝,意味着我們不應該将字段的類型以公開的方式提供給外界 (其實屬性就是對字段的封裝)

3、其實單純寫程式一點不難,難得是如何設計程式,使代碼簡潔易讀而效率又最高,