概述C#静态构造函数

开发 后端
本文介绍如果没有编写C#静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的C#静态构造函数。
1.用于对静态字段、只读字段等的初始化。       
2.添加static关键字,不能添加访问修饰符,因为C#静态构造函数都是私有的。    
3.类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数
4.C#静态构造函数是不可继承的,而且不能被直接调用。      
5.如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。 
6.如果没有编写C#静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的C#静态构造函数。
usingSystem;  
classA  
{  
publicstaticintX;  
staticA()//④执行完后返回到③  
{  
X=B.Y+1;  
Console.WriteLine("staticA()");  
}  
}  
classB  
{  
publicstaticintY=A.X+1;//③调用了A的静态成员,  
//转到A的静态构造函数----> 
staticB()//②如果带有初始值设定项的静态字段,  
//执行该类的静态构造函数时,  
//先要按照文本顺序执行那些初始值设定项。  
//转到初始值设定项----> 
{  
Console.WriteLine("staticB()");  
}  
staticvoidMain()//①程序入口,  
//如果类中包含用来开始执行的Main方法,  
//该类的静态构造函数将在调用Main方法之前执行。  
//转到B的静态构造函数----> 
{  
Console.WriteLine("X={0},Y={1}",A.X,B.Y);//⑤输出结果  
Console.ReadLine();  
}  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

【编辑推荐】

  1. C#在应用程序间发送消息实现浅析
  2. 一些C#时间类型的入门知识
  3. C#接口和抽象类技术特点浅析
  4. 一个C#时间计算的实例
  5. C#继承知识详解
责任编辑:佚名 来源: IT168
相关推荐

2009-08-24 18:09:13

C#构造函数

2009-07-31 15:44:02

C#静态构造函数

2009-08-20 14:28:00

C#静态构造函数

2009-08-13 18:02:11

C#静态构造函数

2009-10-23 11:31:05

CLR Via C#调

2009-08-13 18:10:31

C#静态构造函数

2009-07-31 14:15:38

C# 构造函数

2009-07-31 14:08:54

C# 匿名函数

2024-12-31 00:07:12

2011-06-14 12:27:38

C#C++

2009-11-17 09:07:55

静态构造函数

2011-06-11 21:36:44

C#C++

2009-08-14 09:15:28

C#调用构造函数

2009-09-04 11:15:07

选择C#构造函数

2009-09-17 18:56:22

CLR Via C#

2010-01-22 11:13:16

C++静态

2009-07-30 15:24:13

C#析构函数C#构造函数

2010-01-27 16:10:32

C++静态构造函数

2009-08-14 17:24:28

C#构造函数和析构函数

2009-09-18 09:02:45

CLR Via C#
点赞
收藏

51CTO技术栈公众号