手机
当前位置:查字典教程网 >编程开发 >C#教程 >c# 类型构造器
c# 类型构造器
摘要:主要作用是:设置类型中静态字段的初始化。类型构造器不一定要在类中定义,但是最多也只能有一个。例:复制代码代码如下:classSomeType...

主要作用是:设置类型中静态字段的初始化。类型构造器不一定要在类中定义,但是最多也只能有一个。例:

复制代码 代码如下:

class SomeType{

static SomeType(){}

}

jit编译器在编译一个方法时,会查看代码引用哪些类型。任何类型定义了类型构造器,jit编译器都会检查当前AppDomain是否已经执行了这个类型构造器,如果没有就执行,已经执行了就直接返回,不再次执行。在多线程的环境下,可能同一时间有多个执行相同的方法,CLR希望每一个AppDomain中一个类型构造器只执行一次,在调用类型构造器时,使用互斥线程同步锁,解决这个问题。

类型构造器中只能访问类型的静态字段,一般只是初始化这些字段。

代码内联初始化字段:

复制代码 代码如下:

class SomeType

{

Static int x = 5;

}

等价于

复制代码 代码如下:

class SomeType

{

Static int x;

Static SomeType()

{

x = 5;

}

}

还有:

复制代码 代码如下:

class SomeType

{

Static int x = 3;

Static SomeType()

{

x = 5;

}

}

等价于

复制代码 代码如下:

class SomeType

{

Static int x;

Static SomeType()

{

x = 3;

x = 5;

}

}

虽然c#不允许值类型为它的实例化字段使用内联初始化语法,但是静态字段可以的,以上把class改成struct一样可以运行,

主要原因是:值类型可以定义无参类型构造器,但是不可以定义无参类型实例构造器。

【c# 类型构造器】相关文章:

c#数组详解

c#构造初始化的顺序浅析

C#词法分析器之构造NFA详解

C# 泛型类(函数)的实例化小例子

c# 调用.bat文件的实现代码

C#数据结构揭秘一

c# 类型转换

c#简单读取文本的实例方法

C# char类型字符转换大小写的实现代码

c# 引用类型构造器

精品推荐
分类导航