C#中静态变量,静态构造函数,普通变量,普通构造函数的执行顺序。

顺序如下

静态变量:静态变量在类第一次被加载时初始化。这是在任何静态构造函数或静态代码块执行之前完成的。

静态构造函数(Java中是静态代码块):静态构造函数在静态变量和静态代码块执行完毕之后执行。静态构造函数只在类第一次被加载时执行一次。

普通变量:普通变量在每次创建类的实例时初始化。这是在普通构造函数执行之前完成的。

普通构造函数:普通构造函数在普通变量初始化之后执行。每次创建类的实例时都会执行一次普通构造函数。

综上,执行顺序如下:

静态变量初始化

静态构造函数执行

普通变量初始化(每次创建实例时)

普通构造函数执行(每次创建实例时)

以下是一个示例代码,展示了执行顺序:

using System;

class MyClass

{

    // 静态变量

    static int staticVar = InitStaticVar();

    // 静态构造函数

    static MyClass()

    {

        Console.WriteLine("静态构造函数执行");

    }

    // 实例变量

    int instanceVar = InitInstanceVar();

    // 实例构造函数

    public MyClass()

    {

        Console.WriteLine("实例构造函数执行");

    }

    static int InitStaticVar()

    {

        Console.WriteLine("静态变量初始化");

        return 0;

    }

    int InitInstanceVar()

    {

        Console.WriteLine("实例变量初始化");

        return 0;

    }

}

class Program

{

    static void Main()

    {

        // 第一次访问 MyClass 会触发静态成员的初始化

        MyClass obj1 = new MyClass();

        MyClass obj2 = new MyClass();

    }

}

运行以上代码的输出顺序为:

静态变量初始化

静态构造函数执行

普通变量初始化

普通构造函数执行

普通变量初始化

普通构造函数执行

猜你喜欢

转载自blog.csdn.net/Charizard_/article/details/139538081