1

我在 c# 应用程序中多次使用静态类和静态成员,但我确实对其内部进行了更多思考,昨天有人问我为什么静态成员首先加载到内存中?

这是正确的问题吗?如果是,那么请解释一下为什么会这样。

谢谢,

4

3 回答 3

3

静态,或者更确切地说是类字段,存储在类本身中,不需要访问类的实例。该类在第一次使用时立即加载到内存中,并且一旦加载该类,类字段就可用。

于 2013-04-29T06:53:32.017 回答
2

静态成员是在运行时分配的成员,它的内存寻址是不可变的。我的意思是,一旦静态成员被初始化,它就会一直在内存中的相同位置,直到程序结束。

话虽如此,静态成员是在运行时初始化的,但不一定是初始化的第一件事。为了进一步解释,根据您的应用程序结构,可以“首先”分配诸如编译时常量字符串和其他常量之类的东西,这意味着在应用程序的内存寻址的最开始。

一个非常好的特性是速度大大提高,因为不需要“搜索”内存来调用正确的成员/方法。

于 2013-04-29T06:53:54.910 回答
2

静态类在加载类时初始化。它在创建任何对象之前被初始化。因为它不需要初始化任何对象。可以有任意数量的静态类和静态字段。它们都先初始化一次,以便可以随时随地使用。

希望解释有所帮助。

于 2013-04-29T06:55:17.703 回答