欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

c#构造初始化的顺序浅析

时间:2021-04-10 08:53:12|栏目:.NET代码|点击:

这个很基础的知识,但我至今才意识到它。想想也很失败。

直接上代码:很简单

复制代码 代码如下:

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();

    }


所以说它的执行顺序为:子类字段-父类字段-父类构造器-子类构造器

上一篇:Winform应用程序如何使用自定义的鼠标图片

栏    目:.NET代码

下一篇:C# 的析构以及垃圾回收实例分析

本文标题:c#构造初始化的顺序浅析

本文地址:http://www.codeinn.net/misctech/98523.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有