为什么Nullable结构体允许'null'
本文关键字:null 结构体 Nullable 为什么 | 更新日期: 2023-09-27 18:07:26
Nullable是一个结构体。我知道结构不能被分配'null'。如何将Nullable的对象赋值为空呢?原因是什么?
实际上不接受null
的值;它只是有语法糖,允许它像null
一样。该类型实际上看起来有点像这样:
struct Nullable<T>
{
private bool hasValue;
private T value;
}
初始化hasValue == false
和value == default(T)
时。
当你编写像
这样的代码时int? i = null;
c#编译器实际上在幕后做这个:
Nullable<T> i = new Nullable<T>();
在运行时将null
转换为int?
时也会进行类似的检查。
进一步阅读
- 为什么可以将" null "赋值给可空类型