Struct on the heap?
本文关键字:heap the on Struct | 更新日期: 2023-09-27 18:10:04
这里是:
class SimpleDateStructureDemo
{
struct Date
{
public int year;
public int month;
public int day;
}
static void Main()
{
...
}
}
然后我看到一个例子,说对象是在堆上分配的:
Date dateMoonWalk = new Date();
我认为类是ref类型,而结构是值类型。最后,您可以通过使用new在堆上创建一个结构类型对象,对吗?
你可以通过new在堆上创建一个结构类型对象,对吗?
不,如果你在Main
中这样做,一般来说,它不会被分配到堆上。你可以通过多种方式在堆上分配一个结构,包括在类中使用它作为一个字段,在闭包中使用它,等等。
new Date
语法只是将结构初始化为它的默认值,但实际上并不改变它的分配方式或位置。
new
在这种情况下与堆上的分配无关
http://msdn.microsoft.com/en-us/library/fa0ab757.aspxnew操作符还用于为值类型调用默认构造函数。