您可以将本机类型包装到结构中(快速示例为您提供一个想法,未经测试,有很多改进空间):
public struct NullableDouble {
public bool hasValue = false;
private double _value;
public double Value {
get {
if (hasValue)
return _value;
else
throw new Exception(...);
}
set {
hasValue = true;
_value = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然,你不会得到更新的C#版本的语法糖,即你必须使用(参见Andreas的评论.)myNullableDouble.hasValue而不是myNullableDouble == null等等