构造函数的执行 及其顺序
//测试子类实例化时执行的构造函数的顺序
public void DoConstructorTest() { ConstructorTest.StaticMethod(); ConstructorTest b = new ConstructorTest(); }
using System; namespace ConsoleApplicationTest { /// <summary>
/// 静态构造函数在程序中只执行一次
/// 构造函数的执行顺序 子类(静)->父类(静)->父类->子类
/// 调用静态方法之前 只执行其所在类的静态函数
/// </summary> public class ConstructorTestBaseBase { static ConstructorTestBaseBase() { Console.WriteLine("ConstructorTestBaseBase static"); } public ConstructorTestBaseBase() { Console.WriteLine("ConstructorTestBaseBase "); } } public class ConstructorTestBase : ConstructorTestBaseBase { static ConstructorTestBase() { Console.WriteLine("ConstructorTestBase static"); } public ConstructorTestBase() { Console.WriteLine("ConstructorTestBase "); } public static void StaticMethod() { Console.WriteLine("ConstructorTestBase StaticMethod"); } } public class ConstructorTest : ConstructorTestBase { static ConstructorTest() { Console.WriteLine("ConstructorTest static"); } public ConstructorTest() { Console.WriteLine("ConstructorTest "); } } }
版权声明:本文原创发表于 博客园,作者为 imbob,博客 http://imbob.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。