c# 中可空值类型存储在哪里?栈还是堆?

问题描述 投票:0回答:1

可空值类型存储在

c#
中的哪里?栈还是堆?

我有以下代码:

int? num = null;

根据这个答案

可为空类型是一个由两个字段组成的结构体:bool 和 T。当值为 null 时,bool 为 false,T 具有默认值。当值不为 null 时,bool 为 true。

值类型的默认值是为

Value
结构体中的
Nullable<T>
字段设置的。 ^

所以,我可以说

int? num = null
以默认值存储在堆栈中?

c# null nullable value-type
1个回答
0
投票

这要看情况。如果可为 null 的值是该方法的局部变量 - 它就会卡住。但是,如果可为 null 的值是引用类型的“字段”,则实际上会增加其大小。这意味着它存在于堆中。

© www.soinside.com 2019 - 2024. All rights reserved.