CLR如何处理静态类?

时间:2014-09-03 11:36:01

标签: c# .net static clr static-constructor

任何人都可以解释CLR如何处理静态类? CLR是否为内部处理静态类创建了一个单例实例?如果没有,为什么我们在C#中有一个静态构造函数? (根据我的理解,我们仅使用构造函数来实例化类)

2 个答案:

答案 0 :(得分:4)

首先,CLR中没有静态类。 CLR对静态类没有任何了解。 这是C#的特色。

静态类被编译为abstractsealed类。使abstract阻止它的实例化,sealed阻止继承。

静态类没有特殊之处,它只是一个简单的类,所有成员都是静态的。

  

是,CLR在内部创建一个单例实例来处理静态   类?

,它是抽象的,无法实例化。

  

如果不是为什么我们在C#中有一个静态构造函数?

首次引用或实例化类型时,将调用静态构造函数。它用于初始化类的静态成员。

When is a static constructor called in C#?

答案 1 :(得分:2)

首次引用类型时,将调用static构造函数。它不一定是static类,而是static构造函数。

CLR不会创建static类的单例实例。它确实在static变量初始化后保留在内存中。