源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-11-29 15:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#构造初始化的顺序浅析
这个很基础的知识,但我至今才意识到它。想想也很失败。 直接上代码:很简单
[u]复制代码[/u] 代码如下:
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 派生出一个子类,那它的构造顺序又是怎么样的呢?
[u]复制代码[/u] 代码如下:
/// <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();     }
所以说它的执行顺序为:子类字段-父类字段-父类构造器-子类构造器
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部