成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#構造函數和析構函數

開發(fā) 后端
這里介紹C#構造函數和析構函數,一個構造函數總是和它的類名相同,但是,它沒有聲明返回類型。總之,構造函數總是public的,你可以用它們來初始化變量。

C#構造函數和析構函數

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

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

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

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

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

  1. private TestClass() {} 

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

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

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

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

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

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

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

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

【編輯推薦】

  1. 介紹Mono C#編譯器
  2. C#運算符重載學習總結
  3. 概述C#語言的結構體
  4. C#遺傳算法學習筆記
  5. 討論C#分部方法
責任編輯:佚名 來源: 51CTO.com
相關推薦

2009-09-03 13:14:55

C#構造函數C#析構函數

2009-07-30 15:24:13

C#析構函數C#構造函數

2010-07-20 09:52:27

Perl構造函數

2010-01-18 15:53:27

C++析構函數

2009-08-13 14:36:40

C#結構體構造函數

2009-07-31 16:06:50

成員函數構造函數C#

2025-02-18 00:08:00

代碼C++RAII

2009-07-31 14:15:38

C# 構造函數

2009-08-24 18:09:13

C#構造函數

2010-02-04 16:39:26

C++析構函數

2021-12-11 19:02:03

函數C++對象

2009-09-04 11:15:07

選擇C#構造函數

2009-08-20 14:28:00

C#靜態(tài)構造函數

2009-07-31 15:37:45

C#靜態(tài)構造函數

2009-07-31 15:44:02

C#靜態(tài)構造函數

2009-08-14 09:15:28

C#調用構造函數

2011-07-15 01:29:39

C++析構函數

2009-09-02 10:49:46

C#調用析構方法

2009-08-13 18:15:06

C#繼承構造函數

2009-08-13 17:38:42

C#構造函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜亚洲 | 91偷拍精品一区二区三区 | 性一交一乱一伦视频免费观看 | 久久久91 | 欧美激情精品久久久久久 | 国产精品一区二区三区在线播放 | 免费看一级毛片 | 日本黄色片免费在线观看 | 亚洲精品66| 综合久久综合久久 | 中文字字幕一区二区三区四区五区 | 91久久久久久久久久久久久 | 日本福利视频免费观看 | 日韩毛片网 | 一级黄片一级毛片 | 国产1区2区3区 | 99re在线观看| 91干b| 综合色播 | 国产午夜精品久久久 | 日韩伦理一区二区三区 | 人人爽人人爽人人片av | 欧美a免费 | 毛片站| 蜜桃视频在线观看免费视频网站www | 中文字幕一区在线观看视频 | 嫩草视频在线看 | 男女网站在线观看 | 国产一区二区三区 | 亚洲色图在线观看 | 99re99| 波多野结衣一区二区 | 亚洲第一中文字幕 | 日韩欧美专区 | 中文成人无字幕乱码精品 | 成人一区二区三区在线观看 | 久久精品国产久精国产 | 自拍中文字幕 | 成人精品一区二区三区中文字幕 | 九九久久免费视频 | 欧美一级黄色片免费观看 |