C#初始化顺序
using System; namespace Test { class Program { static void Main(string[] args) { Console.ReadLine(); } } public class Base { private static Print p1 = new Print("1父类Base_静态变量"); private Print p2 = new Print("1父类Base_变量"); static Base() { Console.WriteLine("1父类Base_静态构造函数"); } public Base() { Console.WriteLine("1父类Base_构造函数"); } } public class Animal : Base { private static Print p1 = new Print("2子类Animal_静态变量"); private Print p2 = new Print("2子类Animal_变量"); static Animal() { Console.WriteLine("2子类Animal_静态构造函数"); } public Animal() { Console.WriteLine("2子类Animal_构造函数"); } } public class Dog : Animal { private static Print p1 = new Print("3子子类Dog_静态变量"); private Print p2 = new Print("3子子类Dog_变量"); static Dog() { Console.WriteLine("3子子类Dog_静态构造函数"); } public Dog() { Console.WriteLine("3子子类Dog_构造函数"); } } public class Print { public Print(string str) { Console.WriteLine(str); } } }
class Program { static void Main(string[] args) { Base b1 = new Base(); Console.ReadLine(); } }
/*
1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量
1父类Base_构造函数
*/
class Program { static void Main(string[] args) { Base b2 = new Animal(); Console.ReadLine(); } } /*
2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量
1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量
1父类Base_构造函数
2子类Animal_构造函数
*/
class Program { static void Main(string[] args) { Base b3 = new Dog(); Console.ReadLine(); } } /*
3子子类Dog_静态变量
3子子类Dog_静态构造函数
3子子类Dog_变量
2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量
1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量
1父类Base_构造函数
2子类Animal_构造函数
3子子类Dog_构造函数
*/
class Program { static void Main(string[] args) { Animal a1 = new Animal(); Console.ReadLine(); } } /*
2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量
1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量
1父类Base_构造函数
2子类Animal_构造函数
*/
class Program { static void Main(string[] args) { Animal a2 = new Dog(); Console.ReadLine(); } } /*
3子子类Dog_静态变量
3子子类Dog_静态构造函数
3子子类Dog_变量
2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量
1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量
1父类Base_构造函数
2子类Animal_构造函数
3子子类Dog_构造函数
*/
class Program { static void Main(string[] args) { Dog d = new Dog(); Console.ReadLine(); } } /*
3子子类Dog_静态变量
3子子类Dog_静态构造函数
3子子类Dog_变量
2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量
1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量
1父类Base_构造函数
2子类Animal_构造函数
3子子类Dog_构造函数
*/

浙公网安备 33010602011771号