gpt4 book ai didi

c# - C# 是 int 吗?当 hasvalue = true 时,bool 总是被装箱吗?

转载 作者:可可西里 更新时间:2023-11-01 08:42:16 26 4
gpt4 key购买 nike

This MSDN reference似乎表明当 int? (或任何 Nullable<T> )有一个值,它总是装箱(因此数据存储效率低得多,内存方面比 int )。是这样吗?

最佳答案

该页面指的是当您装箱 Nullable<T> 时结构,而不是结构本身内部的值。

在您尝试对可空类型本身进行装箱之前,存储可空类型不涉及装箱:

int? a = 42; // no boxing
int? n = null; // no boxing

object nObj = n; // no boxing
object aObj = a; // only now will boxing occur

此行为与装箱常规值类型(处理 null 情况除外)时没有什么不同,因此确实是可以预期的。

关于c# - C# 是 int 吗?当 hasvalue = true 时,bool 总是被装箱吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3151144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com