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();

    }

}

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

静态变量初始化

静态构造函数执行

普通变量初始化

普通构造函数执行

普通变量初始化

普通构造函数执行

 

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值