做了一年的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,則這種形式的封裝通常又過於徹底。例如,你可能希望欄位從外部唯讀,但從內部可以更改,但...