C#类实例的初始化是这样进行的:在调用构造函数的入口处先初始化自身数据成员,若声明字段时显式给出了初始化语句则按初始化语句进行,否则若是基本类型例如int或string则初始化为0或"",若是类则保持为null;若该类含有基类则下一步调用基类构造函数,基类构造函数的执行过程同上,最后调用派生类构造函数的函数体。
以上过程纯属自己的验证加猜测。
C#成员初始化列表中只能对base进行初始化。
C#的初始化和C++有点不一样啊,似乎还更加隐晦,派生类的成员初始化为什么要比基类更早。感觉越是接近底层的语言,再对某一问题进行深究时,越容易追本溯源。别人都告诉我C#学起来的速度要比C++快得多,我怎么感觉若是想深入这门语言所花的时间会比C++长。
C#类对象初始化过程
时间: 2024-10-13 04:39:18