日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C#中{get;set;}的具體使用_C#教程

作者:m0_60150025 ? 更新時間: 2023-04-08 編程語言

在C#程序中經常會看到set,get的配套使用,很多人不知道它的用途。我就在這向大家講講,也加深一下自己的印象。

//這里有兩個類  
public class person1
{
    public string name;
}
 
public class person2
{
    public string Name{set;get;}
}

我們可以看到,第一個類中的name是沒有封裝的,第二給則用到{get;set;} ?關鍵字進行封裝。其實含義也是很簡單,get與set分別對應的是可讀與可寫。其實以前的代碼是這樣寫的,只是現在的.net框架可以忽略成上面那樣

private string name;
 
public string Name
{
    get { return name; }
    set { name = value; }
}

區別:當實例化第一個“person1”這個類時,系統在分配內存空間時對name屬性直接分配內存,之后對name屬性的操作也是直接操作內存中name屬性所在的這個塊;而當實例化第二個人“person2”類型時,系統會先分配一個叫name的private私有的內存空間,讀與寫的操作都是通過Name這個public的類似于指針的東西來關聯name進行,以此達到封裝的目的,并且通過get和set關鍵字也可以控制可讀還是可寫。

簡單的說就是控制字段的讀寫權限。

再舉例說明下:

假設類是一銀行,既能存錢也能取錢

? ? Private Money;
? ? Private class bank()
? ? {
? ? ? get
? ? ? {
? ? ? ? ?return Money;
? ? ? }
? ? ? Set
? ? ? {
? ? ? ? ?Money=value;
? ? ? }
? ? }

Money 就像銀行里的自動取款機,你看不見里面的Money,但你能用set(存錢),用get(取錢)。Money是一個私有字段,是分裝在類中的,類以外的程序不能直接訪問的。C#中get、set用法中,類的set和get成員是外部程序訪問類內部屬性的唯一方法,就像你去銀行取錢,你不能直接從銀行的保險柜里拿錢,而是銀行營業人員把錢取出來給你的。

屬性在調用者看來就像一個普通的變量,但作為類的設計者,你可以利用屬性來隱藏你類中的一些字段,使外界只能通過屬性來訪問你的字段,你可以通過屬性來限制外界對你的字段的存取,就利用get、set。如果想讓用戶隨意存取你的字段,那么就實現get、set;如果只想讓用戶讀取字段,就只實現get;若只想讓用戶寫字段就只實現set。同時還可以在set和get中對用戶傳遞的值進行一些驗證工作,以確保你的字段將含有正確的值。

? ? Private int a;
? ? Public int index
? ? {
? ? ? get
? ? ? {
? ? ? ? return a;
? ? ? }
? ? ? set
? ? ? {
? ? ? ? ?If (value>0)
? ? ? ? ? ?a=value;
? ? ? ? ?else
? ? ? ? ? ?a=0;
? ? ? }
? ? }

可看出,get、set用法中一則是隱藏組件或類內部的真是成員;

二是用來建立約束的,比如,實現“有我沒你”這種約束;

三是用來響應屬性變化事件,當屬性變化是做某事,只要寫在set方法里就行。

當你想讀出或寫入屬性的值時,存取標志限定了被實現的語句。用于讀出屬性的值的存取標志記為關鍵字get,而要修改屬性的值的讀寫符標志記為set。

原文鏈接:https://blog.csdn.net/m0_60150025/article/details/127786985

欄目分類
最近更新