C# GET 和 SET作用


C#中get和SET,看來看去還是看不懂,通俗一點解釋一下,用了有什么好處,不用會怎么樣
如果你這樣寫是沒有什么不一樣的. 
private int __Old; 
public int Old{ 
get{return __Old;} 
set{__Old = value;}
 

}

但是如果你這樣寫就不一樣了. 
private int __Old; 
public int Old{ 
get{return __Old;} 
set{// 這里加入了驗證代碼 
if(value<0) 
throw new ArgumentOutException("value", "輸入值不能小於0"); 
__Old = value; 
}

上面的例子說明屬性中可以添加些代碼進行處理. 也可以設置的訪問的權限等.


在類中定義一個屬性 
public class Student 

private string name 
public string Name 

set{name=value;}//這里是給私有屬性name賦值 
get{return name;}//這里取出私有屬性name的值 


c#在定義類時,通常要把類中聲明的對象封裝起來,使得外界不能訪問這個屬性。上述代碼中如果去掉set部分,則外界只能讀取name的值,如果去掉get部分,則只能給name賦值。這樣就可以控制外界對私有屬性name的訪問權限了,這種寫法是C#的一個特性

當然你也可以通過自己創建函數來對name進行取值和賦值,但這樣就顯得比較麻煩了。


屬性與普通變量不同就在於, 普通變量就是放在屋子里的東西, 是什么樣明明白白. 而屬性則是在屋子的門口放了個守門人, 你拿東西放東西要經過他.

這個守門人就是屬性訪問器, 拿東西就是 get, 放東西就是 set. 怎么拿怎么放是它說了算, 雖然你覺得好像就是直接拿直接放差不多. 
GET SET 就是對外的接口 ,一般在實例中訪問成員數據需要這個成員數據的訪問方式為PUBLIC ,現在C#很高級了,GET 就是獲取,SET 就是設置,但是它提供了跟好的收縮性,對GET 和SET 可以單獨設置訪問權限 比如你對某個成員數據只能讀取或者只寫,或者只有派生類可以訪問等。。。 相對以前來說,沒有屬性訪問器,需要通過函數來調用私有成員數據,屬性提供了高效的訪問模式和簡單的書寫。 
就是為了安全啊~~ 
字段是你具體要操作的數據所以他的值不能出錯,可是你又不能避免用戶犯錯~~ 
為了安全就用屬性來給字段賦值,因為 在set中你可以對數據的安全進行驗證, 
get就更簡單了驗證完數據了就要把值給了字段所以要get 
set的中文意思是“設置”; 
get的中文意思是“獲得”;

補充:

get 和 set 會在相應的時候自動調用 
主要是為了隱藏程序內的數據結構時用 
get是獲取該屬性的值, 
set設置該屬性的值。 
在用set時有一個特殊的變量value 
就是設置屬性時的值

value 隱式參數,用於設置訪問器以及添加或移除事件處理程序。

對類的屬性進行 設置 
比如用類名.屬性=“”賦值 set作用 
變量=類名.屬性 取值 get 作用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM