类的静态构造器

静态构造函数在类被加载时自动执行,主要用于静态数据初始化。遵循唯一执行、在静态成员初始化后、在实例化前执行等原则。示例代码展示了静态构造器和无参构造器的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态构造函数是实现对一个类进行初始化的方法成员。它一般用于对静态数据的初始化,静态构造函数不能有参数,不能有修饰符而且不能被调用,当类被加载时,类的构造函数自动被调用。

准则:


1、在一个程序的执行过程中,静态构造器最多只执行一次。

2、静态构造器在类的静态成员初始化之后执行,或者讲编译器会奖静态成员初始化语句转换成赋值语句放在静态构造器执行的最开始。

3、静态构造器在任何类的静态成员被引用前执行。

4、静态构造器在任何类的实例变量被 分配之前执行。

下面是实例代码:

namespace 类的构造器3_静态构造器_
{
    class Program
    {
        static void Main(string[] args)
        {
            a A = new a();
            Console.WriteLine(a.i);
            //执行结果为先执行静态成员100再执行无参构造器程序
                 //当第一次执行时,类中的静态构造器先执行后才执行无参构造器,证明静态构造器在实例构造器前执行。
            a A1 = new a();//当第二次执行时,类中的静态构造器就不执行了,证明静态构造器最多只执行一次。
        }
    }
    class a
    {
        public static int i = 100;//为了给这个静态成员初始化,类给这个静态成员自动分配了一个静态构造器
                           //通过反编译器可以看到。证明:编译器会将静态成员初始化语句转换成赋值语句放在
                              //静态语句的静太构造器被引用之前执行。


      

  static a()
        {
            Console.WriteLine("我是静态构造器!");
        }
        public a()
        {
            Console.WriteLine("我是无参构造器!");
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值