gpt4 book ai didi

c# - 为什么 Nullable,struct, allows 'null'

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:52 25 4
gpt4 key购买 nike

Nullable 是一个结构。而且我知道结构不能被分配为“空”。那么我们如何才能将 Nullable 的对象赋值为 null 呢?这是什么原因?

最佳答案

它实际上不接受 null 值;它只是具有语法糖,允许它像 null 一样表现。该类型实际上看起来有点像这样:

struct Nullable<T>
{
private bool hasValue;
private T value;
}

所以当它被初始化时 hasValue == falsevalue == default(T)

当你写这样的代码时

int? i = null;

C# 编译器实际上在幕后执行此操作:

Nullable<T> i = new Nullable<T>();

在运行时将 null 转换为 int? 时也会进行类似的检查。

延伸阅读

关于c# - 为什么 Nullable<T>,struct, allows 'null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15810635/

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