【发布时间】:2011-02-08 17:46:10
【问题描述】:
我有一个有静态成员的类。据我了解,所有静态成员对于类的所有实例都是通用的,这意味着静态成员只会被分配一次内存。此内存分配在哪里(堆栈或堆)以及何时分配此内存?
编辑:此内存不同于实例级内存。这个内存是如何被引用的?编译时是否分配了此内存?
【问题讨论】:
我有一个有静态成员的类。据我了解,所有静态成员对于类的所有实例都是通用的,这意味着静态成员只会被分配一次内存。此内存分配在哪里(堆栈或堆)以及何时分配此内存?
编辑:此内存不同于实例级内存。这个内存是如何被引用的?编译时是否分配了此内存?
【问题讨论】:
静态成员的内存分配只是在使用类型时完成,无论是作为变量声明还是访问静态成员。
如前所述,静态成员的内存分配是在堆上完成的。
【讨论】:
静态成员始终存储在全局堆中,即使是引用类型成员。但是,这个堆不是正常的垃圾收集堆。在此处了解更多信息:http://www.codeproject.com/KB/cs/codeconcepts.aspx
【讨论】:
在堆上分配的内存。每种类型都有执行类型初始化的静态构造函数。它在访问类型之前执行。
【讨论】: