gpt4 book ai didi

c# - 在c#值类型或引用类型中为null

转载 作者:太空狗 更新时间:2023-10-29 19:50:44 25 4
gpt4 key购买 nike

本来我的印象是NULL是引用类型,因为它被赋值给了引用,然后遇到了这个叫做nullable value types的概念,这让我的理论陷入了尴尬的境地,NULL值类型到底是不是引用类型?

最佳答案

C# 规范在这一点上很明确:null 关键字代表一个没有类型的表达式。它既不是引用类型也不是值类型也不是指针类型。然而,该表达式可以转换到所有这些类型。没有要求编译器将所有表达式分类为具有类型,事实上它没有。

现在您可能会问在运行时空引用的类型是什么,可空值类型的空值的类型是什么,以及空指针的类型是什么。答案是:

  • 空引用没有类型。如果你有一个可以装巧克力的盒子,问“这个空盒子里是什么牌子的巧克力?”是没有意义的。丢失的巧克力没有品牌;空引用没有类型。

  • 同样,空指针的类型也不是任何东西;空指针值不指向任何东西。如果你有一张纸,上面写着地址 1600 Pennsylvania Avenue,你可以问“这个地址的房子是什么颜色的”,得到的答案是:白色。如果你有一张白纸,问那个地址的房子是什么颜色的,并不能得到任何有用的答案。

  • 可空值类型的空值是可空值类型的值。

关于c# - 在c#值类型或引用类型中为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17667248/

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