什么是静态构造函数

来源:互联网 发布:js合并两个对象 编辑:程序博客网 时间:2024/05/04 15:32

静态构造函数初始化类:
       可以初始化static 字段而不是const 字段
       当类被装载时由.net调用
       不能被调用:没有参数,没有访问修饰符

静态构造函数代码示例:
struct Pair
{
   public static readonly Pair Origin;
   public Pair(int x, int y)
   {
        this.x = x;
        this.y = y;
   }
   static Pair()
   {
        Origin = new Pair(0, 0);
   }
   private int x, y;
}

静态构造函数使用注意:
静态构造函数只能由.net调用,而不能由程序员调用。这保证它会被调用,只被调用一次,并且在恰当的时候被调用(在任何类或结构被使用前)。因为程序员不能调用静态构造函数,所以静态构造函数没有参数。出于同样的原因,静态构造函数不能有访问修饰符。
静态构造函数不能被用来初始化常量字段,即使常量字段隐式为静态的。因为前面说过,常量字段必须被初始化,而且只能在它声明的时候初始化。

 

静态构造函数
静态字段
•       静态字段...
       被缺省初始化为0/false/null
       可以在声明时初始化
       只能通过类名访问
struct Pair
{
    public Pair(int x, int y)
    {
        ...
    }
    private static Pair origin = new Pair(0,0);
    ...
private int x, y;

Pair p = new Pair();
...
Method(p.origin);    //错误,只能通过类名访问
Method(Pair.origin); //正确
由static修饰符声明的字段称为静态变量。当类的声明装载时,静态变量就开始存在,直到程序结束时才消失。
静态变量的初值:
         整型变量为0(包括枚举)
         实型变量为0.0
         bool型变量为false
         引用型变量为null

 

喜欢的,麻烦光顾一下:http://www.taoche.com/buycar/serial/dibadaiyage/

原创粉丝点击