【发布时间】:2016-12-21 19:15:55
【问题描述】:
进行了很多搜索,但最终都没有澄清我的疑问。
当使用静态类或方法时,c# 何时为它们分配内存?它会被释放吗?
额外问题:什么时候应该使用静态成员或类?
【问题讨论】:
-
第一次使用该类。它不会被释放。
-
关于额外问题:在需要时使用静态成员或类。
-
它很可能在编译时分配内存。但这实际上是一个实现细节,而不是您需要担心的事情。你想解决什么问题?为什么这很重要?
-
@CodyGray 编译该程序时无法为该程序分配内存...
-
当然可以,@servy。信息放置在二进制图像的静态数据区域(.data/.bss 部分)。该分配发生在编译时。与链接器合作的编译器为该数据分配空间并知道其地址是什么。我不知道您是否试图指出二进制图像在加载时必须映射到内存中,所以实际上是加载器执行分配?虽然这肯定是一个有效的观点,但运行时也不会分配动态内存是真的:OS VMM 会。
标签: c# memory-management static-methods static-classes