C 屬性和字段 get set

2021-07-04 00:01:24 字數 830 閱讀 7321

做了一年的asp.net的開發了,最近有乙個疑問,在專案中經常用到實體類,每次寫get set  ,我就有點不理解了,是不是吃多了沒事情做,何必不把字段設定成public就行了,下面做了乙個實驗

class program

}public class entity

public class entity2

public int age

}public class entity3

set

}private string age;

public string age

set

}}

1   直接用public違背了 c# oop 程式設計的 封裝 ,所有的基類都不希望派生類去直接訪問我的資料

2   可以控制資料的範圍,屬性就相當於保安,要檢查一下,比如   如果age賦值為負數

try

catch

console.readkey();

}public class entity4

set

else}}

}}

這裡給年齡賦乙個負的值,顯然不合理

3  可以控制唯讀或者只寫  (只用get   或者只用set)

寫了這麼多,最後什麼時候用哪種方式呢,我覺得寫哪種都可以,如果你要在賦值或者取值的時候有限定,你可以採用 entity3的方式,第一種我個人一般也不用,我一般用entity2的這種,也是微軟推薦的,至於為什麼不用第一種,我也是很無奈,至少我個人覺得第一種和第二種完全沒區別。至少微軟也沒有給乙個我們乙個很有道理的說法!



C 字段,屬性和屬性封裝字段

c 類成員包括 字段,屬性和方法。對於日常對於乙個類我們新增成員時會有幾種方法。如對於乙個person 類,我們對於其中乙個成員 性別 gender 進行定義,可以寫成 1,public string gender 2,public string gender 3,private string ge...

c 字段封裝get set的詳解

使用系統 使用system.collections.generic 使用system.text 命名空間mypractice 這樣的方法先分配乙個叫名字的私有空間,小寫的名字用於類的內部使用,大寫的名稱用於外部使用 公共類persongetset 獲取,設定用法中一則是隱藏元件或類內部的真實成員 二...

c 欄位和屬性

一 字段 field 可以在宣告欄位的同時賦給它乙個初始值。二 屬性 property 1 引入 假如將字段宣告為public,則在類的外部都可以對該字段進行訪問和更改,違背了類的封裝特性。如果宣告為private,則這種形式的封裝通常又過於徹底。例如,你可能希望欄位從外部唯讀,但從內部可以更改,但...