加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如果类有结构变量,那么它将被存储在哪里?

发布时间:2020-12-15 08:14:32 所属栏目:百科 来源:网络整理
导读:已经清楚的是,由于结构是c#中的值类型,它们存储在堆栈上,而类对象存储在堆上(它的引用,当然存储在堆栈中). 警告:(是的,这可能并非总是如此.感谢@Jon进行更正)但在大多数情况下,是的! 但是,其成员类型为struct的第一类呢?现在,内存模型将如何? 顺便说一句,
已经清楚的是,由于结构是c#中的值类型,它们存储在堆栈上,而类对象存储在堆上(它的引用,当然存储在堆栈中).

警告:(是的,这可能并非总是如此.感谢@Jon进行更正)但在大多数情况下,是的!

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

顺便说一句,我如何检查某个对象是否位于堆栈或堆中?

好的.一些假设:

>此类是函数内的本地类.
> struct是一个成员而不是一个变量. (感谢更正.)

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读