1. 程式人生 > 程式設計 >淺談C# 欄位和屬性

淺談C# 欄位和屬性

一、淺談訪問修飾符

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

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

注意:類的成員在定義的時候沒有顯示的寫出訪問修飾符,則預設是private。對應到欄位和屬性中,通常欄位修飾為private,屬性修飾為public。

二、欄位的使用

1.關於欄位

a.欄位又稱為:“成員變數”,一般在類的內部做資料互動使用。

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

2.通俗的理解:

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

新增標準:根據程式的功能需求,具體來新增需要的不同型別的欄位。

三、屬性

1.屬性的使用

作用:在面向物件設計中主要使用屬性描述物件的靜態特徵。

要求:一般採用Pascal命名法(首字母大寫),資料型別要和對應的欄位要一致。

2.屬性的理解

a.屬性其實就是外界訪問私有欄位的入口,屬性本身不儲存任何資料,在對屬性賦值和讀取的時候其實就是操作的對應私有欄位。

圖例:

淺談C# 欄位和屬性

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

淺談C# 欄位和屬性

3.屬性的作用

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

示例:

淺談C# 欄位和屬性

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

示例:

淺談C# 欄位和屬性

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

示例:

淺談C# 欄位和屬性

四、欄位與屬性比較

欄位(成員變數)

a.欄位主要是為類的內部做資料互動使用,欄位一般是private。

b.欄位可讀可寫。

c.當欄位需要為外部提供資料的時候,請將欄位封裝為屬性,而不是使用公有欄位(public修飾符),這是面向物件思想所提倡的。

屬性(方法)

a.屬性一般是向外提供資料,主要用來描述物件的靜態特徵,所以,屬性一般是public。

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

五、自動屬性

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

示例:

淺談C# 欄位和屬性

快捷方式:prop+tab+tab

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

以上就是淺談C# 欄位和屬性的詳細內容,更多關於C#欄位和屬性的資料請關注我們其它相關文章!