最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#學(xué)習(xí)筆記整理_深入剖析構(gòu)造函數(shù)、析構(gòu)函數(shù)

 更新時間:2016年09月19日 09:01:14   投稿:jingxian  
下面小編就為大家?guī)硪黄狢#學(xué)習(xí)筆記整理_深入剖析構(gòu)造函數(shù)、析構(gòu)函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

構(gòu)造函數(shù)、析構(gòu)函數(shù)

構(gòu)造函數(shù):

1.若沒提供任何構(gòu)造函數(shù),則系統(tǒng)會自動提供一個默認的構(gòu)造函數(shù),初始化所有成員為默認值(引用類型為空引用null,值類型為0,bool類型為false);

2.若提供了帶參數(shù)的構(gòu)造函數(shù),則系統(tǒng)不提供默認的構(gòu)造函數(shù);

3.構(gòu)造函數(shù)可重載:可提供多個不同版本的構(gòu)造函數(shù),依據(jù)參數(shù)的個數(shù)、類型來區(qū)分;

4.私有構(gòu)造函數(shù):則無法通過該構(gòu)造函數(shù)實例化該對象,可通過調(diào)用靜態(tài)函數(shù)來實例化;當僅用作某些靜態(tài)成員或?qū)傩缘娜萜鲿r,可定義私有構(gòu)造函數(shù)來防止被實例化;

一般的構(gòu)造函數(shù)都是實例構(gòu)造函數(shù),只要創(chuàng)建實例,就執(zhí)行構(gòu)造函數(shù);

靜態(tài)構(gòu)造函數(shù):

1.只能定義一個,最多運行一次,僅在第一次調(diào)用類的任何成員之前由.NET運行庫調(diào)用它,

2.它不能帶任何參數(shù)、無任何訪問修飾符,只能訪問類的靜態(tài)成員,無法訪問到類的實例成員;

3.如果類有一些靜態(tài)字段、屬性需要在第一次使用類之前從外部源中初始化,則使用靜態(tài)構(gòu)造函數(shù);

4.靜態(tài)構(gòu)造函數(shù)與無參數(shù)的實例構(gòu)造函數(shù)可以同時定義,何時執(zhí)行哪個構(gòu)造函數(shù)不會沖突;

在構(gòu)造函數(shù)中可以調(diào)用自身的其它構(gòu)造函數(shù):this(),或父類的構(gòu)造函數(shù):base(),可類似繼承的語法調(diào)用其它構(gòu)造函數(shù);

只讀字段readonly:和常量const類似,不能修改其值,但只讀字段用readonly聲明,可以未初始化,在構(gòu)造函數(shù)中對其初始化,之后不可更改其值;

匿名類型的實例化:var a = new{f1=“1ad”, f2=”34”, f3=5, f4=6};

構(gòu)造函數(shù):用于析構(gòu)類的實例

• 不能在結(jié)構(gòu)中定義析構(gòu)函數(shù)。只能對類使用析構(gòu)函數(shù)。

• 一個類只能有一個析構(gòu)函數(shù)。

• 無法繼承或重載析構(gòu)函數(shù)。

• 無法調(diào)用析構(gòu)函數(shù)。它們是被自動調(diào)用的。由垃圾回收器控制,如果垃圾回收器認為某個對象符合析構(gòu),則調(diào)用析構(gòu)函數(shù)(如果有)并回收用來存儲此對象的內(nèi)存。程序退出時也會調(diào)用析構(gòu)函數(shù)

• 析構(gòu)函數(shù)既沒有修飾符,也沒有參數(shù)

可以通過調(diào)用 Collect 強制進行垃圾回收,但大多數(shù)情況下應(yīng)避免這樣做,因為這樣會導(dǎo)致性能問題

C# 無需太多的內(nèi)存管理。這是因為 .NET Framework 垃圾回收器會隱式地管理對象的內(nèi)存分配和釋放。但是,當應(yīng)用程序封裝窗口、文件和網(wǎng)絡(luò)連接這類非托管資源時,應(yīng)當使用析構(gòu)函數(shù)釋放這些資源。當對象符合析構(gòu)時,垃圾回收器將運行對象的 Finalize 方法。

如果您的應(yīng)用程序在使用昂貴的外部資源,我們還建議您提供一種在垃圾回收器釋放對象前顯式地釋放資源的方式。可通過實現(xiàn)來自 IDisposable 接口的 Dispose 方法來完成這一點,該方法為對象執(zhí)行必要的清理。這樣可大大提高應(yīng)用程序的性能。即使有這種對資源的顯式控制,析構(gòu)函數(shù)也是一種保護措施,可用來在對 Dispose 方法的調(diào)用失敗時清理資源

class Car

{

  -Car() 

  {

    // … …

  }

}

該析構(gòu)函數(shù)隱式地對繼承鏈中的所有實例遞歸地調(diào)用調(diào)用 Finalize()方法

public class Bus
 {
   protected static readonly DateTime globalStartTime;
 
   protected int RouteNumber { get; set; }
 
   static Bus() //靜態(tài)構(gòu)造函數(shù)
   {
 globalStartTime = DateTime.Now;
 Console.WriteLine("Static ctor sets global start time to {0}", globalStartTime.ToLongTimeString());
   }
 
   public Bus(int routeNum)
   {
 RouteNumber = routeNum;
 Console.WriteLine("{0} is created.", RouteNumber);
   }
 
   public void Drive()
   {
 TimeSpan elapsedTime = DateTime.Now - globalStartTime;
 
 Console.WriteLine("{0} is starting its route {1:N2} minutes after global start time {2}.",
             this.RouteNumber,
             elapsedTime.TotalMilliseconds,
             globalStartTime.ToShortTimeString());
   }
 }
 
 class TestBus
 {
   static void Main()
   {
 
 Bus bus = new Bus(71);
 bus.Drive();
 System.Threading.Thread.Sleep(25);
 
 Bus bus2 = new Bus(72);
 bus2.Drive();
 
 System.Console.WriteLine("Press any key to exit.");
 System.Console.ReadKey();
   }
 }
 /* Output:
   Static ctor sets global start time to 10:04:08 AM
   71 is created.
   71 is starting its route 21.00 minutes after global start time 10:04 AM.
   72 is created.
   72 is starting its route 46.00 minutes after global start time 10:04 AM.   
*/

以上就是小編為大家?guī)淼腃#學(xué)習(xí)筆記整理_深入剖析構(gòu)造函數(shù)、析構(gòu)函數(shù)的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~

相關(guān)文章

  • DevExpress根據(jù)條件設(shè)置GridControl RepositoryItem是否可編輯

    DevExpress根據(jù)條件設(shè)置GridControl RepositoryItem是否可編輯

    這篇文章主要介紹了DevExpress根據(jù)條件設(shè)置GridControl RepositoryItem是否可編輯,需要的朋友可以參考下
    2014-08-08
  • C#自定義簽名章實現(xiàn)方法

    C#自定義簽名章實現(xiàn)方法

    這篇文章主要介紹了C#自定義簽名章實現(xiàn)方法,涉及C#圖形繪制的相關(guān)實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-08-08
  • BootStrap mvcpager分頁樣式(get請求,刷新頁面)

    BootStrap mvcpager分頁樣式(get請求,刷新頁面)

    這篇文章主要介紹了BootStrap mvcpager分頁樣式(get請求,刷新頁面)的相關(guān)資料,通過引入相關(guān)文件,實現(xiàn)此功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • C#中使用@聲明變量示例(逐字標識符)

    C#中使用@聲明變量示例(逐字標識符)

    這篇文章主要介紹了C#中使用@聲明變量示例(逐字標識符)在C#中,@符號不僅可以加在字符串常量之前,使字符串不作轉(zhuǎn)義之用,還可以加在變量名之前,使變量名與關(guān)鍵字不沖突,這種用法稱為“逐字標識符”,需要的朋友可以參考下
    2015-06-06
  • .net使用cap實現(xiàn)消息異步處理

    .net使用cap實現(xiàn)消息異步處理

    CAP 是一個基于 .NET Standard 的 C# 庫,它是一種處理分布式事務(wù)的解決方案,同樣具有 EventBus 的功能,它具有輕量級、易使用、高性能等特點,本文給大家介紹了.net下使用cap實現(xiàn)消息異步處理,需要的朋友可以參考下
    2024-05-05
  • C# string轉(zhuǎn)unicode字符的實現(xiàn)

    C# string轉(zhuǎn)unicode字符的實現(xiàn)

    本文主要介紹了C# string轉(zhuǎn)unicode字符的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • C#線程池ThreadPool用法簡介

    C#線程池ThreadPool用法簡介

    這篇文章介紹了C#線程池ThreadPool的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#實現(xiàn)文本讀取的7種方式

    C#實現(xiàn)文本讀取的7種方式

    這篇文章主要介紹了C#實現(xiàn)文本讀取的7種方式,文本讀取在上位機開發(fā)中經(jīng)常會使用到,實現(xiàn)的方式也有很多種,下面我們就來分享七種方式,需要的小伙伴可以參考一下
    2022-05-05
  • C# OpenFileDialog對話框控件的使用

    C# OpenFileDialog對話框控件的使用

    OpenFileDialog是C#中常用的對話框控件,用于讓用戶選擇文件,本文就來介紹一下OpenFileDialog對話框控件的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • c# 自定義值類型一定不要忘了重寫Equals,否則性能和空間雙雙堪憂

    c# 自定義值類型一定不要忘了重寫Equals,否則性能和空間雙雙堪憂

    這篇文章主要介紹了c# 自定義值類型一定不要忘了重寫Equals,幫助大家提高c# 程序的性能,感興趣的朋友可以了解下
    2020-08-08

最新評論

滦南县| 莫力| 保德县| 东兴市| 勐海县| 元江| 涟水县| 本溪| 长汀县| 黔西县| 竹北市| 葵青区| 赞皇县| 米泉市| 聂拉木县| 阳高县| 大城县| 涞水县| 铁岭市| 永德县| 惠州市| 南丹县| 分宜县| 鲜城| 大足县| 扬中市| 姜堰市| 闻喜县| 文山县| 永川市| 信宜市| 曲阳县| 延安市| 虹口区| 泰来县| 平度市| 木兰县| 莆田市| 防城港市| 璧山县| 宝应县|