Nullable 是一个结构。而且我知道不能将结构分配为“空”。那么我们怎样才能将 Nullable 的对象赋值为 null 呢?是什么原因?
问问题
412 次
1 回答
10
它实际上不接受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
在运行时转换为 a时也会进行类似的检查int?
。
延伸阅读
于 2013-04-04T12:10:45.250 回答