【发布时间】:2014-09-03 11:36:01
【问题描述】:
谁能解释 CLR 如何处理静态类? CLR 是否创建一个单例实例来在内部处理静态类?如果没有,为什么我们在 C# 中有一个静态构造函数? (根据我的理解,我们只使用构造函数来实例化类)
【问题讨论】:
标签: c# .net static clr static-constructor
谁能解释 CLR 如何处理静态类? CLR 是否创建一个单例实例来在内部处理静态类?如果没有,为什么我们在 C# 中有一个静态构造函数? (根据我的理解,我们只使用构造函数来实例化类)
【问题讨论】:
标签: c# .net static clr static-constructor
首先,CLR 中没有静态类。 CLR 对静态类一无所知。 这是C#的特点。
静态类被编译成abstract 和sealed 类。设置为abstract 可防止实例化,sealed 可防止继承。
静态类没有什么特别之处,它只是一个简单的类,所有成员都是静态的。
是,CLR 在内部创建一个单例实例来处理静态 上课?
否,它是抽象的,不能实例化。
如果不是,为什么我们在 C# 中有一个静态构造函数?
当第一次引用或实例化类型时,将调用静态构造函数。用于初始化类的静态成员。
【讨论】:
static 构造函数在第一次引用该类型时被调用。不必是 static 类也可以有 static 构造函数。
CLR 不会创建 static 类的单例实例。它确实将 static 变量保留在内存中,尽管在它们被初始化之后。
【讨论】: