CLR如何处理静态类?

4

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

2个回答

4
首先,CLR 中没有静态类。CLR 对静态类一无所知。这是 C# 的特性。
静态类被编译为抽象类和密封类。将其设置为抽象类可以防止实例化,将其设置为密封类可以防止继承。
静态类并不特殊,它只是一个所有成员都是静态的简单类。
“CLR 在内部创建一个单例实例来处理静态类”吗?,它是抽象的,不能被实例化。
为什么 C# 中有静态构造函数?当类型首次引用或实例化时,静态构造函数将被调用。它用于初始化类的静态成员。 C# 中何时调用静态构造函数?

2

当类型首次被引用时,将调用static构造函数。它不必是static类才能拥有static构造函数。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接