我创建了带有引用类型和属性的静态数组的struct,它通过存储在struct中的唯一id从该数组获取对象 - 但我不知道它有任何意义,我想在堆栈上存储struct。
struct TestStruct
{
static TestClass[] Instances = new TestClass[16];
int uid; //max value = 15
TestClass Instance
{
get { return Instances[uid]; }
}
}
答案 0 :(得分:5)
结构本身将存储在堆栈中。
TestClass是您的参考类型。无论你做什么,它们都将被存储在堆上。在这种情况下,Instances
是堆上的静态数组。
答案 1 :(得分:2)
好的,所以Instances
是一个静态变量 - 所以它将在堆上。同样,数组本身也是一个引用类型,所以它将在堆上。
只有uid
变量实际上是特定TestStruct的值的一部分,并且它将在堆上或堆栈上,具体取决于上下文。
It's all an implementation detail though ...你真正想要实现的是什么?