任何人都可以解释CLR如何处理静态类? CLR是否为内部处理静态类创建了一个单例实例?如果没有,为什么我们在C#中有一个静态构造函数? (根据我的理解,我们仅使用构造函数来实例化类)
答案 0 :(得分:4)
首先,CLR中没有静态类。 CLR对静态类没有任何了解。 这是C#的特色。
静态类被编译为abstract
和sealed
类。使abstract
阻止它的实例化,sealed
阻止继承。
静态类没有特殊之处,它只是一个简单的类,所有成员都是静态的。
是,CLR在内部创建一个单例实例来处理静态 类?
否,它是抽象的,无法实例化。
如果不是为什么我们在C#中有一个静态构造函数?
首次引用或实例化类型时,将调用静态构造函数。它用于初始化类的静态成员。
答案 1 :(得分:2)
首次引用类型时,将调用static
构造函数。它不一定是static
类,而是static
构造函数。
CLR不会创建static
类的单例实例。它确实在static
变量初始化后保留在内存中。