我创建了一个包含静态引用类型数组和属性的结构体,该属性通过在结构体中存储的唯一ID获取来自该数组的对象 - 但我不知道这是否有意义,我希望将结构体存储在堆栈上。
struct TestStruct
{
static TestClass[] Instances = new TestClass[16];
int uid; //max value = 15
TestClass Instance
{
get { return Instances[uid]; }
}
}
我创建了一个包含静态引用类型数组和属性的结构体,该属性通过在结构体中存储的唯一ID获取来自该数组的对象 - 但我不知道这是否有意义,我希望将结构体存储在堆栈上。
struct TestStruct
{
static TestClass[] Instances = new TestClass[16];
int uid; //max value = 15
TestClass Instance
{
get { return Instances[uid]; }
}
}
这个结构体本身将被存储在堆栈上。
TestClass是你的引用类型。无论你做什么,它们都将存储在堆上。在这种情况下,Instances
是堆上的静态数组。
好的,所以Instances
是一个静态变量-所以它将在堆上。同样,数组本身是引用类型,因此也将在堆上。
只有uid
变量实际上是特定TestStruct的值的一部分,它将根据上下文在堆上或堆栈上。
但这都是实现细节...你真正想要实现什么目标?