日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
探尋C#中GET與SET的用法

get是讀取屬性時進行的操作,set是設(shè)置屬性時進行的操作。定義一個屬性如果只有g(shù)et,這個屬性就是只讀的。同樣,只有set,屬性就是只寫的,當(dāng)然只寫的屬性是沒有任務(wù)意義的。

創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、八宿網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為八宿等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

假設(shè)類是一個銀行,既能存錢也能取錢.

 
 
 
  1. private     m_money;  
  2. private     class     bank()     
  3. {  
  4.       get     {  
  5.                 return     m_money;  
  6.                 }  
  7.       set     {  
  8.                 m_money=value  
  9.                 }    

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

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

比如

 
 
 
  1. private     int     a;  
  2. public     int     Index  
  3.         {  
  4.             get  
  5.                   {  
  6.                       return     a;  
  7.                     }  
  8.             set  
  9.                     {  
  10.                         if     (value>0)  
  11.                                 a=value;  
  12.                           else  
  13.                               a=0;  
  14.                         }  
  15.               }  

可以看出,get\set有一種函數(shù)的特征。

C#中的get與set,一是隱藏組件或類內(nèi)部的真實成員,二是用來建立約束的,比如,實現(xiàn)“有我沒你”這種約束。三是用來響應(yīng)屬性變化事件,當(dāng)屬性變化時做某事,只要寫在SET   方法里就行了。

有兩種途徑揭示類的命名屬性——通過域成員或者通過屬性。前者是作為具有公共訪問性的成員變量而被實現(xiàn)的;后者并不直接回應(yīng)存儲位置,只是通過   存取標(biāo)志(accessors)被訪問。

當(dāng)你想讀出或?qū)懭雽傩缘闹禃r,存取標(biāo)志限定了被實現(xiàn)的語句。用于讀出屬性的值的存取標(biāo)志記為關(guān)鍵字get,而要修改屬性的值的讀寫符標(biāo)志記為set。

 
 
 
  1. using     System;  
  2.  
  3.  public     class     House  
  4.  {  
  5.  private     int     m_nSqFeet;  
  6.  
  7.  public     int     SquareFeet  
  8.  {  
  9.  get     {     return     m_nSqFeet;     }  
  10.  set     {     m_nSqFeet     =     value;     }  
  11.  }  
  12.  }  
  13.  
  14.  class     TestApp  
  15.  {  
  16.  public     static     void     Main()  
  17.  {  
  18.  House     myHouse     =     new     House();  
  19.  myHouse.SquareFeet     =     250;  
  20.  Console.WriteLine(myHouse.SquareFeet);  
  21.  }  
  22.  }    

House類有一個命名為SquareFeet的屬性,它可以被讀和寫。實際的值存儲在一個可以從類內(nèi)部訪問的變量中——如果你想當(dāng)作一個域成員重寫它,你所要做的就是忽略存取標(biāo)志而把變量重新定義為:

public     int     SquareFeet;

對于一個如此簡單的變量,這樣不錯。但是,如果你想要隱藏類內(nèi)部存儲結(jié)構(gòu)的細節(jié)時,就應(yīng)該采用存取標(biāo)志。在這種情況下,set   存取標(biāo)志給值參數(shù)中的屬性傳遞新值。(可以改名,見第10行。)

除了能夠隱藏實現(xiàn)細節(jié)外,你還可自由地限定各種操作:

get     set:允許對屬性進行讀寫訪問。

get     only:只允許讀屬性的值。

set     only:只允許寫屬性的值。

除此之外,你可以獲得實現(xiàn)在set標(biāo)志中有效代碼的機會。例如,由于種種原因(或根本沒有原因),你就能夠拒絕一個新值。***是沒有人告訴你它是一個動態(tài)屬性——當(dāng)你***次請求它后,它會保存下來,故要盡可能地推遲資源分配。

C#中g(shù)et與set的用法就介紹到這里,希望對大家有用。


網(wǎng)頁名稱:探尋C#中GET與SET的用法
網(wǎng)站地址:http://www.5511xx.com/article/cocjjig.html