国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c#構造初始化的順序淺析

2020-01-24 03:10:58
字體:
來源:轉載
供稿:網友

這個很基礎的知識,但我至今才意識到它。想想也很失敗。

直接上代碼:很簡單

復制代碼 代碼如下:

public class Base
    {
        int i=0;

        public Base()
        {
            System.Console.WriteLine("我是基類構造器");
        }

    }

 class Program
    {
        static void Main(string[] args)
        {
            Base d = new Base();
        }
    }


對于上面的代碼。是先執行構造器,還是先初使化字段 i 變量呢?其實只要意識到這個問題,也就很容易試出來,它應當是先初使化字段 i 變量。

那么現在如果Base 派生出一個子類,那它的構造順序又是怎么樣的呢?

復制代碼 代碼如下:

/// <summary>
    /// 基類
    /// </summary>
    public class Base
    {
       public int baseint = 100;
        public Base()
        {
            System.Console.WriteLine("構造器:我是基類構造器");

        }

        private class Inner
        {
            public Inner()
            {
                System.Console.WriteLine("字段:我是基類Inner");
            }
        }

        /// <summary>
        /// 字段初使化
        /// </summary>
        private Inner inner = new Inner();
    }


   /// <summary>
   /// 子類
   /// </summary>
    class Derived : Base
    {
      

        public Derived()
        {
            System.Console.WriteLine("構造器:我是子類構造器");

        }


       private class Inner
        {
            public Inner()
            {
                System.Console.WriteLine("字段:我是子類Inner");
            }
        }

        /// <summary>
        /// 字段初使化
        /// </summary>
        private Inner inner = new Inner();

    }


所以說它的執行順序為:子類字段-父類字段-父類構造器-子類構造器

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 手游| 无极县| 东乌珠穆沁旗| 洪洞县| 合江县| 麻城市| 尉氏县| 高要市| 独山县| 武功县| 静安区| 武义县| 高安市| 高清| 通道| 中方县| 镇江市| 黎城县| 红原县| 台南市| 涟源市| 丰原市| 民权县| 玛曲县| 拜泉县| 永德县| 康平县| 曲麻莱县| 策勒县| 长治市| 盱眙县| 宜春市| 温州市| 彰武县| 赤城县| 鹤山市| 汤原县| 鄱阳县| 南昌市| 虎林市| 浪卡子县|