【问题标题】:Where is the class assigned to when stored in a struct?当存储在结构中时,类分配到哪里?
【发布时间】:2009-03-15 06:54:41
【问题描述】:

我读过一个线程(其中有 Marc Gravell 和 Jon Skeet 的输入),其中提到如果结构在类中,则该结构会像类一样存储在堆中。

如果类是结构的成员怎么办?课程分配到哪里?

谢谢

【问题讨论】:

  • 供参考 - 结构体 local-variable(通常在堆栈上)也有多种方式在堆上结束;捕获的变量、迭代器块等
  • 谢谢。这实际上是由我上面提到的线程中的一个成员提到的(我认为在 C# 中调用了 struct vs class)。

标签: c#


【解决方案1】:

如果类是结构的成员,则只有 引用 存储在结构中(即实例的 32/64 位地址)。类的实例总是在堆上。

【讨论】:

    【解决方案2】:

    仍在堆上。该结构将仅包含对类实例的引用(如指针)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2012-10-08
      • 2021-08-17
      • 1970-01-01
      • 2013-12-27
      • 2020-10-09
      • 1970-01-01
      相关资源
      最近更新 更多