Microsoft.Net框架程序设计学习笔记(11):类型构造器
生活随笔
收集整理的这篇文章主要介绍了
Microsoft.Net框架程序设计学习笔记(11):类型构造器
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
除实例构造器外,CLR还支持类型构造器(又称静态构造器、类构造器、类型初始化器)。类型构造器用于设置一个类型的初始状态。默认情况下,一个类型中没有定义类型构造器,只能手动定义。且类型构造器不能有任何参数。
示例代码如下:
class SomeRefType{
//当SomeRefType第一次被访问时执行
static SomeRefType()
{}
}
struct SomeValType
{
//当SomeValType第一次被访问时执行
static SomeValType()
{}
}
类型构造器不允许添加任何访问限制符,它的访问限制被自动设为私有方式。类型构造器的调用由CLR负责,CLR会在如下时间之一调用类型构造器。
类型构造器一旦被执行,它在整个应用程序域的生命周期内都不会再次被调用 。
如果一个类型构造器抛出一个未处理异常,CLR将认为该类型不可用。试图访问其中的任何字段或方法都将抛出TypeInitializationException异常。
类型构造器的代码只能访问类型的静态字段,且通常它的目的就是初始化这些静态字段。
以下代码:
class SomeType{
static Int32 x = 5;
} 当这段代码被编译时,编译器会为SomeType自动产生一个类型构造器,所以这段代码等价于如下代码: class SomeType
{
static Int32 x;
static SomeType() { x= 5; }
} 还有一点要注意,类型构造器不应该调用其基类的类型构造器。这是因为基类中的静态字段没有被派生类型所继承。(这可能与大家的“认识”相反,因为很多代码或在派生类型内部引用了基类型的静态字段,或通过派生类型引用了基类的静态字段,这不是继承又是啥呢?事实上这确实不是继承,而是编译时静态绑定。另外,其他静态成员,如静态方法、静态属性等,也不会被派生类所继承,同样是编译时静态绑定。)
转载于:https://www.cnblogs.com/free722/archive/2011/03/27/1996808.html
总结
以上是生活随笔为你收集整理的Microsoft.Net框架程序设计学习笔记(11):类型构造器的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: jQuery CheckBox全选
- 下一篇: ASP.NET MVC2+MSSQL+G