W2Fly

导航

静态构造函数


静态构造函数:被自动的调用的,不能被显示的调用.在调用静态构造函数后在调用public构造函数
1 静态构造函数总是在public构造函数调用之前被CLR自动调用,或者引用类的任何静态成员之前被自动调用.强调一点:静态构造

 函数只被调用一次
2 用于对静态字段,静态只读字段等的初始化.只读字段只能在构造函数中或者初始化时被修改,而静态只读字段只能在静态构造 

  函数或者初始化时被赋值.
3 添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的,不能被继承,它是被CLR自动调用的,不能被显示的调用
4 如果类中包含用来开始执行的main方法,则该类的静态构造函数将在调用main方法之前执行.
  任何带有初始值设定的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项
6 如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数.

使用静态构造函数还是成员初始化语句?
成员初始化语句在静态构造函数之前被调用,但是成员初始化语句来初始化静态成员时有一个弊端:
不能捕获异常,所以在使用的时候有以下的建议:
1 简单的静态成员,例如类型为值类型的,使用成员初始化语句
2 静态成员成员初始化比较复杂,或者有可能出现异常,那么用静态构造函数完成

posted on 2007-02-08 11:34  像大海一样......  阅读(122)  评论(0)    收藏  举报