静态构造的学习

来源:互联网 发布:小企业财务会计软件 编辑:程序博客网 时间:2024/04/30 12:18

类的静态构造函数,也就是对静态字段初始化用的,和实例构造函数的区别就是,这个构造函数你无法调用,而是由CLR调用的,实例构造函数new的时候调用。

如果一个列没有显示的实例的构造函数,那么在编译后会加上一个默认无参构造函数,要不然那些实例字段在哪初始化啊。

但是对于静态构造函数来说,就CLR就不太一样了。首先它得保证他只能被调用一次,也有线程安全的问题。不过这个都被很好的解决了,就知道在静态构造里是线程安全的就行了,所以也有很多人在里面特别适合放singleton。

静态构造不写和显示写出有什么差异

不写出来,JIT在对IL代码进行编译的时候会有一个beforefieldint标记,就是由CLR决定什么时候调用静态构造函数,这个时间很难具体的掌握

显示写出,这个调用刚好是在发生在创建一个实例对象,或者刚好在访问类的一个非继承的字段字段和成员之前。时间相对精确。

0 0
原创粉丝点击