静态构造函数

静态构造函数:
1 )用于对静态字段、只读字段等的初始化。              
2 )添加static 关键字,不能添加访问修饰符,因为静态构造函数都是私有的。        
3 )类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数
4 )静态构造函数是不可继承的,而且不能被直接调用。            
5 )如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。    
6 )任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。  
7 )如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。

Java 代码 复制代码

  1. **************************************************   
  2.                 
  3. 1 ①②③…… 为执行顺序   
  4. 2 )输出结果:   static A()   
  5. * static B()   
  6. * X = 1 ,   Y = 2   
  7. ***************************************************/   
  8. using System;   
  9. class A   
  10. {   
  11. public static int X;   
  12.   
  13. static A() //   执行完后返回到   
  14. {   
  15. X = B.Y + 1 ;   
  16. Console.WriteLine("static A()");   
  17. }   
  18. }   
  19.   
  20. class B   
  21. {   
  22. public static int Y = A.X + 1 ; //   调用了A 的静态成员,   
  23. //  转到A 的静态构造函数---->   
  24.   
  25. static B() //   如果带有初始值设定项的静态字段,   
  26. //  执行该类的静态构造函数时,   
  27. //  先要按照文本顺序执行那些初始值设定项。   
  28. //  转到初始值设定项---->   
  29. {   
  30. Console.WriteLine("static B()");   
  31. }   
  32.   
  33. static void Main() //   程序入口,   
  34. //  如果类中包含用来开始执行的   Main  方法,   
  35. //  该类的静态构造函数将在调用   Main  方法之前执行。   
  36. //  转到B 的静态构造函数---->   
  37. {   
  38. Console.WriteLine("X = {0}, Y = {1}", A.X, B.Y);//   输出结果   
  39. Console.ReadLine();   
  40. }   
  41. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值