欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當前位置:主頁 > 軟件編程 > C#教程 >

C#學習筆記整理

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

構造函數(shù)、析構函數(shù)

構造函數(shù):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class Car

{

  -Car() 

  {

    // … …

  }

}

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

public class Bus
 {
   protected static readonly DateTime globalStartTime;
 
   protected int RouteNumber { get; set; }
 
   static Bus() //靜態(tài)構造函數(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ī)淼腃#學習筆記整理_深入剖析構造函數(shù)、析構函數(shù)的全部內(nèi)容了,希望對大家有所幫助,多多支持我們~

上一篇:讓C# Excel導入導出 支持不同版本Office

欄    目:C#教程

下一篇:Json操作庫DynamicJson使用指南

本文標題:C#學習筆記整理

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6277.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權所有