实例中的Value类型在哪里?

本文关键字:在哪里 类型 Value 实例 | 更新日期: 2023-09-27 18:03:39

我们都知道,值类型存储在堆栈中。现在考虑这个:

class test
{
    public int Sum { get; set; }
    public string Name { get; set; }
}
然后创建一个实例,如下所示:
test t = new test();
t.Sum = 10;
t.Name = "a string";

现在,实例及其属性如何存储在堆中?因为我们有一个int值应该存储在堆栈中

实例中的Value类型在哪里?

值类型存储在堆栈中

更好的说法是"值类型可以存储在堆栈中"。实际位置取决于上下文。

值类型的对象只有在将其创建为局部变量时才存储在堆栈中。当您使值类型对象成为其他对象的一部分时,值类型对象成为其"所有者"对象的一部分。根据所有者对象类型的不同,值类型的对象将被放置在动态内存中,如在您的示例中,或者在堆栈中,如果将test声明为struct