gpt4 book ai didi

c# - 如果类具有结构变量,该类将存储在哪里?

转载 作者:太空狗 更新时间:2023-10-29 21:22:40 25 4
gpt4 key购买 nike

已经很清楚了,由于结构在 c# 中是值类型,因此它们存储在堆栈中类对象存储在堆中(它的引用, -类(class)存储在堆栈中)。

警告:(是的,这可能并不总是正确的。感谢@Jon 的更正)但在大多数情况下,是的!

但是,一个成员是 struct 类型的类呢?现在,内存模型将如何?

顺便说一句,我如何检查某个对象是否驻留在 stackheap 中?

好的。一些假设:

  1. 这个类在一个函数中是局部的。
  2. 该结构是一个成员,而不是一个变量。 (感谢更正。)

最佳答案

类本身将是一个引用类型,因此它的实例将保留在堆上。

属性是 struct是实例(即对象)的组成部分,因此也将保留在堆上,就像 int 一样和 enum该对象的属性。

注意:不会有对 struct 的引用属性,就像没有对 int 的引用一样和 enum属性。

关于c# - 如果类具有结构变量,该类将存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20490316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com