Nullable是一个结构.我知道结构不能被指定为"空".那么我们如何才能将Nullable的对象赋给null呢?是什么原因?
它实际上并不接受值null; 它只是具有语法糖,可以让它像它一样行动null.该类型实际上看起来有点像这样:
struct Nullable<T>
{
private bool hasValue;
private T value;
}
Run Code Online (Sandbox Code Playgroud)
所以当它初始化时hasValue == false,和value == default(T).
当你编写代码时
int? i = null;
Run Code Online (Sandbox Code Playgroud)
C#编译器实际上是在幕后执行此操作:
Nullable<T> i = new Nullable<T>();
Run Code Online (Sandbox Code Playgroud)
在转换null到int?运行时也会进行类似的检查.
进一步阅读
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |