C#中的屬性
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
簡介屬性是代表類的實例或類中的一個數據項的成員,使用屬性看起來非常像寫入或讀取一個字段,語法是相同的。 下面的代碼展示了名稱為D的類的使用,它有一個公有字段和一個公有屬性,從用法無法區分它們。
與字段類似,屬性有如下特征: 1、它是命名的類成員。 2、它有類型。 3、它可以被賦值和讀取。 和字段不同的是,屬性是一個函數成員。 1、它不為數據存儲分配內存。 2、它執行代碼。 一個關于屬性的簡單示例代碼如下:
這個示例的圖示如下:
在這個示例中, 屬性聲明和訪問器set和get訪問器有預定義的語法和語義??梢园裺et訪問器想象成一個方法,帶有單一的參數“設置”屬性的值,get訪問器沒有參數并從屬性返回一個值。 set訪問器的特點: 1、有一個單獨的、隱式的值參,名稱為value,與屬性的類型相同。 2、返回類型void。 get訪問器的特點: 1、沒有參數。 2、返回類型與屬性類型相同。 屬性和關聯字段屬性常和字段關聯,一種常見的方式是在類中將字段聲明為private以封裝該字段,并聲明一個public屬性來控制從類的外部對該字段的訪問,和屬性關聯的字段常被稱為后備字段或后備存儲。 屬性和它們的后備字段有幾種命名約定。 一種約定是兩個名稱使用相同的內容,但字段使用Camel大小寫,屬性使用Pascal大小寫。(Camel大小寫風格中,復合詞標識符中每個單詞的首字母大寫,出來第一個單詞,其余字母都是小寫,Pascal大小寫風格中,復合詞中每個單詞的首字母都是大寫。) 另一種約定是屬性使用Pascal大小寫,字段使用相同標識符的Camel大小寫版本,并以下劃線開始。 兩種約定的示例代碼如下:
? 只讀和只寫屬性要想不定義屬性的某個訪問器,可以忽略該訪問器的聲明。 只有get訪問器的屬性稱為只讀屬性。只讀屬性是一種安全的,把一項數據從類或類的實例中傳出,而不允許太多訪問方法。 只有set訪問器的屬性稱為只寫屬性。只寫屬性是一種安全的,把一項數據從類的外部傳入類,而不允許太多的訪問的方法。 兩個訪問器至少有一個必須定義,否則編譯器會報錯,如下圖所示: 自動實現屬性因為屬性經常被關聯到后備字段,C#提供了自動實現屬性(automatically implemented property),允許只聲明屬性而不聲明后備字段,編譯器會為我們創建隱藏的后備字段,并且自動掛接到get和set訪問器上。 自動實現屬性的注意點: 1、不聲明后備字段,編譯器會根據屬性的類型分配存儲。 2、不能提供訪問器的方法體,它們必須被簡單地聲明為分號。get擔當簡單的內存讀,set擔當簡單的寫。 3、只有通過訪問器才能訪問后備字段。因為不能用其他的方法訪問它,所以實現只讀和只寫屬性沒有意義,因此必須同時提供讀寫訪問器。 一個自動實現屬性的示例,代碼如下:
運行結果如下圖所示: 轉自https://www.cnblogs.com/mingupupu/p/17844001.html 該文章在 2025/2/15 11:16:27 編輯過 |
關鍵字查詢
相關文章
正在查詢... |