C#类成员变量初始化与构造函数执行的顺序

本文介绍了C#中类成员变量初始化与构造函数的执行顺序。在实例化类B时,成员变量x和y的初始化先于构造函数执行,顺序为:子类成员变量初始化 -> 父类成员变量初始化 -> 父类构造函数 -> 子类构造函数。通过示例代码展示了这一过程,并进一步解释了在派生类中初始化顺序的细节。
摘要由CSDN通过智能技术生成

例子: 

class A
    {
        public A()
        {
            PrintFields();
        }
        public virtual void PrintFields() { }
    }
    class B : A
    {
        int x = 1;
        int y;
        public B()
        {
            y = -1;
        }
        public override void PrintFields()
        {
            Console.WriteLine("x={0},y={1}", x, y);
        }
    }

对B实例化后x和y的值分别为: 1,0
------------------------------------
C#类成员变量初始化与构造函数执行的顺序(类成员变量初始化先执行,后执行构造函数)

子类成员变量初始化
父类成员变量初始化
父类构造函数
子类构造函数

----------------------------------------------------------
class Foo
    {
        public Foo(string s)
        {
            Console.WriteLine("Foo constructor: {0}", s);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值