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

now*_*ed. 6 .net c# c#-4.0

已经清楚的是since the structs are value types in c#, they are stored on stack,a class object is stored on the heap(它的参考,当然存储在堆栈上).

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

但是,怎么样a class one of whose member is of type struct?现在,内存模型将如何?

顺便说一句,我怎么检查是否存在对象驻留在stackheap

好的.一些假设:

  1. 这个类是函数内的本地.
  2. 结构member不是一个variable.(感谢更正.)

Roy*_*tus 6

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

这是一个属性struct是实例(即,对象的)的一个组成部分,因此也将被保持在堆上,就像intenum该对象的属性.

注意:将有到无的参考struct属性,就像有到无的引用intenum属性.