国产探花免费观看_亚洲丰满少妇自慰呻吟_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();

    }


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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 准格尔旗| 邢台市| 勐海县| 松桃| 云林县| 开平市| 额敏县| 辉县市| 绥宁县| 万宁市| 邹城市| 安图县| 旺苍县| 德昌县| 嵩明县| 佛冈县| 临澧县| 壶关县| 清涧县| 邓州市| 平罗县| 延津县| 宿松县| 保山市| 伊宁县| 苍梧县| 台州市| 沙洋县| 罗田县| 南雄市| 济南市| 新晃| 万载县| 长治县| 子长县| 南和县| 东台市| 河池市| 莎车县| 高阳县| 保靖县|