静态构造函数

本文通过示例深入探讨C#中静态构造函数的工作原理和用法,包括其自动调用的时间,以及如何影响类的初始化过程。通过对比不同情况下类变量的初始化,展示了静态构造函数在初始化静态字段时的作用。
摘要由CSDN通过智能技术生成
1、如果一个类没有定义静态构造函数,就算它有静态字段,编译器也不会自动给这个类生成一个默认的静态构造函数。
验证如下:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace testStaticConstructor
  5. {
  6.     class B
  7.     {
  8.         public static int Y = 1;
  9.         //静态构造函数这部分是被注释了的
  10.         //static B()
  11.         //{
  12.         //    Y = 2;
  13.         //}
  14.         
  15.         static void Main()        
  16.         {
  17.             Console.WriteLine("Y = {0}",B.Y);  
  18.             Console.ReadLine();
  19.         }
  20.     } 
  21. }
我们来看反编译之后的IL语言:
  1. .class private auto ansi beforefieldinit B
  2.     extends [mscorlib]System.Object
  3. {
  4.     .method public hidebysig specialname rtspecialname instance void .ctor() cil managed
  5.     {
  6.         .maxstack 8
  7.         L_0000: ldarg.0 
  8.         L_0001: call instance void [mscorlib]System.Object::.ctor()
  9.         L_0006: ret 
  10.     }
  11.     .method private hidebysig static void Main() cil managed
  12.     {
  13.         .entrypoint
  14.         .maxstack 8</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值