所以我有这个:
class SimpleDateStructureDemo
{
struct Date
{
public int year;
public int month;
public int day;
}
static void Main()
{
...
}
}
然后我看到一个例子,说该对象是在堆上分配的:
Date dateMoonWalk = new Date();
我认为类是ref类型,结构是值类型。最后,您可以通过使用new,对吗?
在堆上创建结构类型对象答案 0 :(得分:3)
你可以通过使用new来创建一个结构类型对象,对吗?
不,如果你在Main
内部这样做,一般来说,它不会在堆上分配。但是,您可以通过多种方式在堆上分配结构,包括将其用作类中的字段,在闭包中使用它等。
new Date
语法只是将结构初始化为默认值(清零),但实际上并没有改变它的分配方式和位置。
答案 1 :(得分:3)