为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable类型,也可简写为T?。但是Nullable自身是结构体,也是值类型,那么它是如何实现将null赋值给值类型的呢? 下面通过自定义一个可空值类型来讲解Nullable的实现原理。 自定义可空值类型 struct XfhNullable where T : struct { private T innerValue; //这个属性很重要 public bool HasValue { set; get; } public T Value { get {