已经清楚的是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?现在,内存模型将如何?
顺便说一句,我怎么检查是否存在对象驻留在stack或heap?
好的.一些假设:
member不是一个variable.(感谢更正.)类本身将是一个引用类型,因此它的实例将保留在堆上.
这是一个属性struct是实例(即,对象的)的一个组成部分,因此也将被保持在堆上,就像int与enum该对象的属性.
注意:将有到无的参考struct属性,就像有到无的引用int和enum属性.