亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#基礎知識系列五(構造函數)

2019-11-17 03:24:27
字體:
來源:轉載
供稿:網友

C#基礎知識系列五(構造函數)

前言

  本節主要來學習下實例構造函數、私有構造函數和靜態構造函數。

  構造函數的作用:

  1、當一個類在new實例化對象時,可調用構造函數進行初始化對象。

  2、不帶參數的構造函數稱為“默認構造函數”。無論何時,只要使用new運算符實例化對象,并且不為new提供任何參數,就會調用默認構造函數。除非類是static的,否則 C# 編譯  器將為無構造函數的類提供一個公共的默認構造函數,以便該類可以實例化。

  3、通過將構造函數設置為私有構造函數可以阻止類被實例化。

  4、結構類型的構造函數與類的構造函數類似,但是 structs 不能包含顯式默認構造函數,因為編譯器將自動提供一個構造函數。此構造函數會將struct中的每個字段初始化為默認值。   只有當 struct 用 new 實例化時,才會調用此默認構造函數。

實例構造函數

使用 new 表達式創建某個類的對象時,會使用實例構造函數創建和初始化所有實例成員變量。 要初始化靜態類或非靜態類中的靜態變量,必須定義靜態構造函數。

class CoOrds{    public int x, y;    // constructor    public CoOrds()    {        x = 0;        y = 0;    }}

只要創建基于CoOrds類的對象,就會調用此實例構造函數。諸如此類不帶參數的構造函數稱為“默認構造函數”。然而,提供其他構造函數通常十分有用。例如,可以向CoOrds類添加構造函數,以便可以為數據成員指定初始值:

public CoOrds(int x, int y){    this.x = x;    this.y = y;}

這樣便可以用默認或特定的初始值創建CoOrd對象,如下所示:

CoOrds p1 = new CoOrds();CoOrds p2 = new CoOrds(5, 3);

如果某個類沒有構造函數,則會自動生成一個默認構造函數,并使用默認值來初始化對象字段。

也可以用實例構造函數來調用基類的實例構造函數。類構造函數可通過初始值設定項來調用基類的構造函數,如下所示:

abstract class Shape{    public const double pi = Math.PI;    PRotected double x, y;    public Shape(double x, double y)    {        this.x = x;        this.y = y;    }    public abstract double Area();}class Circle : Shape{    public Circle(double radius)        : base(radius, 0)    {    }    public override double Area()    {        return pi * x * x;    }}

在此示例中,Circle類將表示半徑和高度的值傳遞給Shape(Circle從它派生而來)提供的構造函數。

私有構造函數

私有構造函數是一種特殊的實例構造函數。它通常用在只包含靜態成員的類中。如果類具有一個或多個私有構造函數而沒有公共構造函數,則其他類(除嵌套類外)無法創建該類的實例。例如:

class NLog{    // Private Constructor:    private NLog() { }    public static double e = Math.E;  //2.71828...}

聲明空構造函數可阻止自動生成默認構造函數。 注意,如果您不對構造函數使用訪問修飾符,則在默認情況下它仍為私有構造函數。 但是,通常顯式地使用 private 修飾符來清楚地表明該類不能被實例化。

當沒有實例字段或實例方法(如 Math 類)時或者當調用方法以獲得類的實例時,私有構造函數可用于阻止創建類的實例。 如果類中的所有方法都是靜態的,可考慮使整個類成為靜態的。

下面是使用私有構造函數的類的示例:

    public class Counter    {        private Counter() { }        public static int currentCount;        public static int IncrementCount()        {            return ++currentCount;        }    }    class TestCounter    {        static void Main()        {            // Counter aCounter = new Counter();   // Error            Counter.currentCount = 100;            Counter.IncrementCount();            Console.WriteLine("New count: {0}", Counter.currentCount);            Console.WriteLine("Press any key to exit.");            Console.ReadKey();        }    }

注意,如果您取消注釋該示例中的以下語句,它將生成一個錯誤,因為該構造函數受其保護級別的限制而不可訪問:

// Counter aCounter = new Counter();   // Error

靜態構造函數

靜態構造函數用于初始化任何 靜態 數據,或用于執行僅需執行一次的特定操作。 在創建第一個實例或引用任何靜態成員之前,將自動調用靜態構造函數。

    class SimpleClass    {        static readonly long baseline;        static SimpleClass()        {            baseline = DateTime.Now.Ticks;        }    }

靜態構造函數具有以下特點:

  • 靜態構造函數既沒有訪問修飾符,也沒有參數。

  • 在創建第一個實例或引用任何靜態成員之前,將自動調用靜態構造函數來初始化類。

  • 無法直接調用靜態構造函數。

  • 在程序中,用戶無法控制何時執行靜態構造函數。

  • 靜態構造函數的典型用途是:當類使用日志文件時,將使用這種構造函數向日志文件中寫入項。

  • 靜態構造函數在為非托管代碼創建包裝類時也很有用,此時該構造函數可以調用LoadLibrary方法。

  • 如果靜態構造函數引發異常,運行時將不會再次調用該構造函數,并且在程序運行所在的應用程序域的生存期內,類型將保持未初始化。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品欧美日韩久久| 欧美专区中文字幕| 亚洲三级av在线| 久久久久一本一区二区青青蜜月| 亚洲欧美国产日韩天堂区| 国产日韩中文字幕在线| 91av在线精品| 日韩经典中文字幕在线观看| 国产精品免费久久久久久| 海角国产乱辈乱精品视频| 97av在线影院| 色偷偷88888欧美精品久久久| 国产精品露脸av在线| 欧美精品18videos性欧美| 91精品国产自产在线观看永久| 91免费的视频在线播放| 秋霞成人午夜鲁丝一区二区三区| 性金发美女69hd大尺寸| 深夜福利亚洲导航| 国产精品专区第二| 6080yy精品一区二区三区| 欧美大尺度电影在线观看| 久久夜精品va视频免费观看| 亚洲男人的天堂网站| 97国产一区二区精品久久呦| 国产欧美日韩免费看aⅴ视频| 亚洲视频在线播放| 韩国国内大量揄拍精品视频| 精品无人区乱码1区2区3区在线| 91久久久久久久久久久久久| 国产精品久久久久久久久久东京| 日本高清视频精品| 亚洲欧洲一区二区三区久久| 69视频在线免费观看| 亚洲国产欧美日韩精品| 色哟哟入口国产精品| 国产精品户外野外| 亚洲欧美自拍一区| 91精品国产网站| 久久久亚洲福利精品午夜| 亚洲性猛交xxxxwww| 久久久久久网址| 国产视频在线观看一区二区| 久久久av电影| 亚洲欧美国产高清va在线播| 国产97人人超碰caoprom| 国产欧美日韩中文| 在线日韩欧美视频| 欧美亚洲国产另类| 日本一区二区在线免费播放| 欧美寡妇偷汉性猛交| 日韩精品中文在线观看| 欧美高清视频在线| 亚洲国产成人精品一区二区| 日韩视频在线免费观看| 日韩av一区在线观看| 久久久伊人欧美| 欧美日韩美女在线观看| 亚洲午夜性刺激影院| 成人网址在线观看| 国产aⅴ夜夜欢一区二区三区| 久久亚洲一区二区三区四区五区高| 亚洲人成电影网站色…| 国产精品白嫩初高中害羞小美女| 俺去亚洲欧洲欧美日韩| 中文字幕亚洲天堂| 日韩色av导航| 国产精品日韩av| 国产亚洲精品久久久久久牛牛| 日韩欧美亚洲成人| 精品精品国产国产自在线| 亚洲欧美综合v| 亚洲精品乱码久久久久久金桔影视| 欧美一级视频在线观看| …久久精品99久久香蕉国产| 亚洲精品小视频| 国产在线视频不卡| 久久久精品亚洲| 国产最新精品视频| 国产成人一区二区| 2019亚洲日韩新视频| 免费99精品国产自在在线| 国产欧美精品xxxx另类| 91九色国产社区在线观看| 日韩av成人在线观看| 色悠悠久久久久| 国产欧洲精品视频| 亚洲精品一区二区在线| 92裸体在线视频网站| 国内成人精品视频| 欧日韩不卡在线视频| 日韩成人av网| 亚洲精品福利视频| 欧美日本啪啪无遮挡网站| 亚洲**2019国产| 成人午夜在线视频一区| 91精品视频一区| 欧美成人精品一区| 国产精品色悠悠| 8050国产精品久久久久久| 深夜福利亚洲导航| 狠狠爱在线视频一区| 亚洲电影成人av99爱色| 日本久久久久久| 国产精品精品久久久| 久久久精品久久久久| 成人h视频在线观看播放| 一区二区欧美亚洲| 国产精品高清免费在线观看| 日韩精品在线电影| 欧美成人中文字幕在线| 国产色婷婷国产综合在线理论片a| 欧美亚洲国产日本| 91精品国产免费久久久久久| 久久亚洲一区二区三区四区五区高| 久久免费在线观看| 国产一区二区丝袜| 日韩免费av一区二区| 国产精品私拍pans大尺度在线| 91精品国产综合久久香蕉922| 国产精品视频色| 国产一区二区三区18| 色综合久久88色综合天天看泰| 亚洲国内精品在线| 久久99久久99精品免观看粉嫩| 久久久久久久一区二区| 日韩av三级在线观看| 国产精品高清在线| 欧美日韩国产va另类| 亚洲精品日产aⅴ| 日韩av在线一区| 久久精品视频免费播放| 日韩在线观看高清| 久久偷看各类女兵18女厕嘘嘘| 一区二区日韩精品| 亚洲视频欧美视频| 国产日韩欧美一二三区| 国产精品2018| 91wwwcom在线观看| 国产精品亚洲自拍| 亚洲少妇激情视频| 国产va免费精品高清在线观看| 国产丝袜精品视频| 国产主播在线一区| 91精品国产91久久| 亚洲欧美日韩久久久久久| 久久久之久亚州精品露出| 久久久www成人免费精品张筱雨| 在线观看视频亚洲| 国产精品视频xxxx| 亚洲福利视频久久| 国产一区二区香蕉| 国产精品人成电影| 精品久久久国产| 日韩欧美亚洲成人| 久久av在线看| 亚洲欧美在线第一页| 久久视频在线视频| 亚洲热线99精品视频| 欧美天堂在线观看| 韩国福利视频一区| 蜜月aⅴ免费一区二区三区| 国产精品老牛影院在线观看| 九九九久久国产免费|