首页 > 代码库 > C#对象初始化的先后顺序
C#对象初始化的先后顺序
using System; namespace ConsoleApp { class Program { static void Main() { A a = new B(); Console.ReadKey(); } } class A { int z = 1;////////////////////////////////////////////7 int k; static int i = 1;/////////////////////////////////5 static int j; public A()////////////////////////////////////////////////8 { k = -1;///////////////////////////////////////////9 PrintFields();///////////////////////////////////////////10 } public virtual void PrintFields() { } static A() { j = 2;/////////////////////////////////////////////6 } } class B : A { int x = 1; ///////////////////////////////////////3 int y; static int m = 1;/////////////////////////////////1 static int n; public B()//////////////////////////////////////////4 { y = -1;///////////////////////////////////////12 PrintFields();///////////////////////////////13 } public override void PrintFields() { Console.WriteLine("x={0},y={1}", x, y);////////////////////////////////11,14 } static B() { n = 2;//////////////////////////////////////////2 } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。