3

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

4

2 回答 2

4

首先,CLR 中没有静态类。CLR 对静态类一无所知。这是C#的特点。

abstract静态类和类一样被编译成sealed。使其abstract防止实例化并sealed防止继承。

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

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

,它是抽象的,不能被实例化。

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

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

什么时候在 C# 中调用静态构造函数?

于 2014-09-03T11:43:45.493 回答
2

static首次引用类型时调用构造函数。它不一定是一个static类才能有一个static构造函数。

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

于 2014-09-03T11:39:59.733 回答