手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#构造初始化的顺序浅析
c#构造初始化的顺序浅析
摘要:这个很基础的知识,但我至今才意识到它。想想也很失败。直接上代码:很简单复制代码代码如下:publicclassBase{inti=0;pub...

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

直接上代码:很简单

复制代码 代码如下:

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

}

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

【c#构造初始化的顺序浅析】相关文章:

C# Bitmap 复制的小例子

C#实现对AES加密和解密的方法

经典的委托排序(深入分析)

c#固定长度的随机字符串例子

c# 开机启动项的小例子

C#枚举中的位运算权限分配浅谈

C#关机小程序源码

C#加密在实际中的应用

C#灰度化图像的实例代码

C#键值对容器的介绍

精品推荐
分类导航