枚举变量可以被垃圾收集
本文关键字:枚举变量 | 更新日期: 2023-09-27 18:06:07
通常所有的引用类型在没有引用时都被垃圾收集。那枚举变量呢?它是否会被垃圾收集,即使它超出了作用域(意味着它不再被引用)?
你的问题写得很混乱。
不收集通常,当没有引用时,所有引用类型都会被垃圾收集。
引用类型。收集引用类型的实例。当实例没有引用时,它们不会被收集。当垃圾收集器运行并确定无法从已知的活动根访问被引用的对象时,它们将被收集。
枚举变量呢?它是否会被垃圾收集,即使它超出了作用域(意味着它不再被引用)?
变量的作用域是程序文本中可以通过变量名访问该变量的区域。变量的作用域只是松散地连接到它的生存期,这就是您要问的。变量的生存期可能比程序控制在其作用域中的时间更长或更短!
同样,完全不清楚你所说的"enum变量会被垃圾收集吗?"变量是存储位置,因此变量必须在某处。变量在哪里?它是一个类的域吗?它是一个局部变量吗?它是一个封闭的外变量吗?它是枚举类型数组的元素吗?所有这些都会影响是否收集与变量相关的存储,如果是,则何时收集。
你问问题的方式没有任何意义。你能把问题说清楚吗?
你可能也想读一下我对这个相关问题的回答:
值类型被垃圾收集吗?
enum是一个值类型变量,所以当它超出作用域时,它会自动释放被遗忘
c#中的枚举是值类型,因此将遵循值类型的垃圾收集规则,该规则根据该类型的声明范围进行延迟。你可以在网上找到很多信息。下面是一个引用类型和值类型比较的示例链接,也是从GC的角度来看的。
http://www.albahari.com/valuevsreftypes.aspx