1. 程式人生 > >C#字段和屬性

C#字段和屬性

訪問 生日 spa 編譯 14. 拓展 ont 默認 本質

一、淺談訪問修飾符

作用:設定訪問權限,限制類中的成員(屬性、方法等)可訪問的範圍,訪問範圍通常有,類的內部、類的外部。

最常用的類型:private(私有的,僅類的內部使用);public(公有的,沒有訪問限制)

註意:類的成員在定義的時候沒有顯示的寫出訪問修飾符,則默認是private。對應到字段和屬性中,通常字段修飾為private,屬性修飾為public。


二、字段的使用

1.關於字段

a.字段又稱為:“成員變量”,一般在類的內部做數據交互使用。

b.字段命名規範:camel命名法(首單詞字母小寫)。

2.通俗的理解

私有化:字段就好比我們的個人財產,僅供個人使用,所以一般是private修飾。

添加標準:根據程序的功能需求,具體來添加需要的不同類型的字段。


四、屬性

1.屬性的使用

作用:在面向對象設計中主要使用屬性描述對象的靜態特征。

要求:一般采用Pascal命名法(首字母大寫),數據類型要和對應的字段要一致。

2.屬性的理解

a.屬性其實就是外界訪問私有字段的入口,屬性本身不保存任何數據,在對屬性賦值和讀取的時候其實就是操作的對應私有字段。

圖例:

技術分享圖片

b.屬性本質其實就是一個方法,通過get和set方法來操作對應的字段,通過反編譯工具我們可以看出,如圖:

技術分享圖片

3.屬性的作用

A.避免出現非法數據,例如一個年齡屬性,正常邏輯是年齡是不可以出現負數的,如果用戶對年齡進行了負數的賦值,我們通過屬性的set方法加入判斷邏輯,從而排除這種非法數據。

示例:

技術分享圖片

B.限定屬性只讀或者只寫,例如有些屬性為了保護數據,我們只能讀取,而不能賦值。具體使用的話,我們根據需要,屏蔽set或get方法達到只讀和只寫。

示例:

技術分享圖片

C.沒有對應私有字段的屬性,例如根據生日屬性獲取到年齡。

示例:

技術分享圖片


五、字段與屬性比較

字段(成員變量)

a.字段主要是為類的內部做數據交互使用,字段一般是private。

b.字段可讀可寫。

c.當字段需要為外部提供數據的時候,請將字段封裝為屬性,而不是使用公有字段(public修飾符),這是面向對象思想所提倡的。

屬性(方法)

a.屬性一般是向外提供數據,主要用來描述對象的靜態特征,所以,屬性一般是public。

b.屬性具備get和set方法,可以在方法裏加入邏輯處理數據,靈活拓展使用。


六、自動屬性

1.屬性編寫新語法(自動屬性:.NET3.0及其後續版本)

示例:

技術分享圖片

快捷方式:prop+tab+tab

註意:沒有特定業務邏輯的屬性都可以簡寫成自動屬性,自動屬性的格式不能修改。自動屬性對應的字段由編譯器自動生成。


C#字段和屬性