小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C#屬性與字段變量的區(qū)別

 隱形的翅膀 2007-05-17
 
連續(xù)兩天被問到這個問題,發(fā)現(xiàn)初學者從wrox的入門經(jīng)典紅寶書中很難找到正確的答案。

通過這兩天的回答我總結(jié)出一個通過講解和例子來從初學者的眼光出發(fā)解釋的方法。
(以C#語言下字符串類型為例)

在這里就不多說字段變量了,簡單提一句,字段變量就是對象公布出來和外界交互數(shù)據(jù)的變量。

屬性是對一個或多個變量的包裝,在Java環(huán)境中,屬性是通過從對象中暴露出來的Set方法和Get來實現(xiàn)的:
public boolean SetPublicString(string val){this.mPublicString = val;}

public string GetPublicString(){return this.mPublicString;}

而在DotNet當中,總結(jié)了以上的Set和Get方法,直接將其定義成了一個暴露屬性,通過對這個屬性的訪問方式不同(取值還是賦值)而采用不同的代碼如以下所示的get代碼段和set代碼段

變量的定義
public string mPublicString;
屬性的定義
        public string PublicString{
            
get{return this.mPublicString;}
            
set{this.mPublicString = value;}
        }

因為可以做到使用不同的代碼段,所以在訪問的時候可以使用更多的邏輯控制來取到或限制需要的值:
public string PublicString{
  
get{
    
if(this.mPublicString.Length>10){
      
return this.mPublicString;
    }

    
else{
      
return "";
    }

  }

  
set{
    
this.mPublicString = value;
  }

}
以上代碼的意思是如果訪問PublicString時就去查看mPublicString的長度,如果大于10就返回否則就返回空字符串。

綜上就把字段變量mPublicString包裝了起來,并不是直接的面向?qū)ο蟮氖褂谜?,達到控制的目的。
屬性的方法中還能寫各種復雜的邏輯,因為屬性中set或get的代碼塊等同于SetPublicString和GetPublicString的方法。

希望以上的內(nèi)容能對你有所幫助,希望能知道你對于這個問題更精確,更簡單明了的解釋方法。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多