我想知道为什么它Nullable<T>是一个值类型,如果它被设计为模仿引用类型的行为?我理解GC压力之类的东西,但我不相信 - 如果我们想要int表现得像参考,我们可能会对所有具有真实参考类型的后果感到满意.我没有理由Nullable<T>不仅仅是盒装版本的Tstruct.
作为价值类型:
null)Equals,没有真正的问题)Nullable<Nullable<T>>不制作Nullable<T>参考类型可以解决这个问题吗?
改写和更新:
我已经修改了我的理由列表,但我的一般问题仍然是开放的:
引用类型如何Nullable<T>比当前值类型实现更糟糕?这只是GC压力和"小的,不可改变的"规则吗?它对我来说仍然很奇怪......
在Nullable微优化(第一部分)中,Eric提到了Nullable<T>一种奇怪的拳击行为,这种行为无法通过类似的用户定义类型实现.
C#语言赋予预定义Nullable<T>类型的特殊功能有哪些?特别是那些无法在某种MyNullable类型上工作的.
当然,Nullable<T>有特殊的语法糖T?,但我的问题更多是关于语义.