C類中的屬性如果設為只讀那麼屬性值是如何來的

時間 2021-08-30 09:28:11

1樓:匿名使用者

只讀屬性就是隻有get訪問器的屬性,通過它能訪問私有欄位,但外部不能操作私有欄位,屬性的值就是私有欄位的值。操作方法如下:

1、首先,在c#中建立一個自動的只讀屬性如圖所示。

2、即使在類的內部,也無法對該屬性賦值,會顯示只讀。

3、如果將改屬性設定get和set,會變成一個可讀可寫的屬性。

4、但是此時,從類的外部也可以修改屬性值,這不是想要的效果。

5、配合訪問修飾符可以解決問題,給set新增private屬性。此時寫操作只能內部進行。

6、訪問修飾符可以作用在get上或者set上,但是不能同時作用於兩者,這樣就完成了。

2樓:匿名使用者

不矛盾啊,複習一下屬性:

class person}}

只讀屬性就是隻有get訪問器的屬性,通過它能訪問私有欄位,但外部不能操作私有欄位。屬性的值就是私有欄位的值。也就是說通過只讀屬性只能讀私有欄位,不能寫私有欄位,如果不利用屬性,光靠設定欄位修飾符就不能完成這個功能。

當然用返回引數的方法也可返回私有欄位的值,但是執行get訪問器比呼叫方法開銷小。從get訪問器返回私有變數並且啟用了優化時,對get訪問器方法的呼叫由編譯器進行內聯,因此不存在方法呼叫的系統開銷。

3樓:匿名使用者

宣告為屬性其實是一種封裝,在屬性裡不是簡單的進行讀寫,它可以設定為只讀,只寫,可讀寫 還能控制一些邏輯,要明白為什麼,查一下物件導向你面的封裝方面的知識你就能豁然開朗了

在南方CASS中屬性匹配後的地類沒有屬性編碼怎麼處理

你是如何匹配的,用s命令嘛 還是用格式刷刷的 南方cass出現地塊如圖所示,這個地塊的地塊編號怎麼改還有名字,還有怎麼給沒有屬性的地塊新增屬性, cass中 地籍 修改宗地屬性 選擇宗地 即可在此介面修改和新增該宗地的屬性了 cass中畫圖直接輸入命令畫出來的就有屬性編碼,用特性匹配出來的就沒有,數...

C中關於屬性寫入的問題

int intagevalue empnew.age console.writeline strnamevalue intagevalue empnew.age convert.toint16 console.readline console.writeline intagevalue 我打個比方吧...

C 類中的定義的變數是什麼屬性?和主函式中直接定義的變數有衝突嗎?和類成員函式中的變數有衝突嗎

沒有衝突,他們是變數,不存在優先順序的問題,但是他們的生存期不同,使用時,的形式也不同。比如 類poin的物件為m poin,裡面有成員變數a,主函式中也有變數a,那麼我們使用時,a 2,指的就是主函式中的變數a,而m poin.a 2指的則是類的物件中的成員變數a.成員函式中的變數只在呼叫函式時生...