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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#構造函數(shù)和析構函數(shù)

C#構造函數(shù)和析構函數(shù)

十年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站制作,個人網(wǎng)站制作服務,為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設計流程、步驟,成功服務上千家企業(yè)。為您提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)頁設計及定制高端網(wǎng)站建設服務,專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁制作,對成都門簾等多個方面,擁有多年的網(wǎng)站設計經(jīng)驗。

在你可以訪問一個類的方法、屬性或任何其它東西之前, ***條執(zhí)行的語句是包含有相應類的C#構造函數(shù)和析構函數(shù)。甚至你自己不寫一個構造函數(shù),也會有一個缺省的構造函數(shù)提供給你。

 
 
 
  1. class TestClass  
  2. {  
  3. public TestClass(): base() {}   
  4. // 由編譯器提供  

一個構造函數(shù)總是和它的類名相同,但是,它沒有聲明返回類型??傊?,構造函數(shù)總是public的,你可以用它們來初始化變量。

 
 
 
  1. public TestClass()  
  2. {  
  3. // 在這給變量  
  4. // 初始化代碼等等。  

如果類僅包含靜態(tài)成員(能以類型調(diào)用,而不是以實例調(diào)用的成員),你可以創(chuàng)建一個private的構造函數(shù)。

 
 
 
  1. private TestClass() {} 

盡管存取修飾符在這一章的后面將要大篇幅地討論,但是private意味著從類的外面不可能訪問該構造函數(shù)。所以,它不能被調(diào)用,且沒有對象可以自該類定義被實例化。并不僅限于無參數(shù)構造函數(shù)——你可以傳遞初始參數(shù)來初始化成員。

 
 
 
  1. public TestClass(string strName, int nAge) { …… } 

作為一個C/C++程序員,你可能習慣于給初始化寫一個附加的方法,因為在構造函數(shù)中沒有返回值。當然,盡管在C#中也沒有返回值,但你可以引發(fā)一個自制的異常,以從構造函數(shù)獲得返回值。更多有關異常處理的知識在第七章 "異常處理"中有討論。

但是,當你保留引用給寶貴的資源,應該想到寫一個方法來解決:一個可以被顯式地調(diào)用來釋放這些資源。問題是當你可以在析構函數(shù)(以類名的前面加"~"的方式命名)中做同樣的事情時,為何還要寫一個附加的方法。

 
 
 
  1. public ~TestClass()  
  2. {  
  3. // 清除  

你應該寫一個附加方法的原因是垃圾收集器,它在變量超出范圍后并不會立即被調(diào)用,而僅當間歇期間或內(nèi)存條件滿足時才被觸發(fā)。當你鎖住資源的時間長于你所計劃的時間時,它就會發(fā)生。因此,提供一個顯式的釋放方式是一個好主意,它同樣能從析構函數(shù)中調(diào)用。

 
 
 
  1. public void Release()  
  2. {  
  3. // 釋放所有寶貴的資源  
  4. }  
  5. public ~TestClass()  
  6. {  
  7. Release();  

調(diào)用析構函數(shù)中的釋放方法并不是必要的——總之,垃圾收集會留意釋放對象。但沒有忘記清除是一種良好的習慣。以上介紹C#構造函數(shù)和析構函數(shù)。

【編輯推薦】

  1. 介紹Mono C#編譯器
  2. C#運算符重載學習總結
  3. 概述C#語言的結構體
  4. C#遺傳算法學習筆記
  5. 討論C#分部方法

當前文章:C#構造函數(shù)和析構函數(shù)
分享URL:http://m.5511xx.com/article/dpsgsso.html