[英]WHY Nullable<T>,struct, allows 'null'
Nullable 是一个结构体。 而且我知道结构不能被分配为“空”。 那么我们如何才能为 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?
时也会进行类似的检查int?
在运行时也是如此。
进一步阅读
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.