【问题标题】:when does static member get memory静态成员什么时候获得内存
【发布时间】:2011-02-08 17:46:10
【问题描述】:

我有一个有静态成员的类。据我了解,所有静态成员对于类的所有实例都是通用的,这意味着静态成员只会被分配一次内存。此内存分配在哪里(堆栈或堆)以及何时分配此内存?

编辑:此内存不同于实例级内存。这个内存是如何被引用的?编译时是否分配了此内存?

【问题讨论】:

标签: c# .net oop


【解决方案1】:

静态成员的内存分配只是在使用类型时完成,无论是作为变量声明还是访问静态成员。

如前所述,静态成员的内存分配是在堆上完成的。

【讨论】:

    【解决方案2】:

    静态成员始终存储在全局堆中,即使是引用类型成员。但是,这个堆不是正常的垃圾收集堆。在此处了解更多信息:http://www.codeproject.com/KB/cs/codeconcepts.aspx

    【讨论】:

      【解决方案3】:

      在堆上分配的内存。每种类型都有执行类型初始化的静态构造函数。它在访问类型之前执行。

      【讨论】:

      • 此内存不同于实例级内存。如何引用此内存。并在编译时分配此内存。
      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 2015-09-15
      • 1970-01-01
      相关资源
      最近更新 更多