可空类型如何在C#中工作?

Mik*_*ock 20 c#

'int?'之间的幕后差异是什么?和'int'?'int?' 某种程度上是一种参考类型?

cor*_*ore 39

?将值类型(T)包装在Nullable <T>结构中:

http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx


Bra*_*son 5

除了"int?" 作为"Nullable"的快捷方式,还有基础设施放入CLR,以隐式和无声地在"int?"之间进行转换.和"int".这也意味着任何装箱操作都会隐式包装实际值(即,不可能将Nullable设置为Nullable,它总是导致T的盒装值或空对象).

当你在编译时不知道T时尝试创建Nullable时遇到了很多这些问题(你只在运行时知道它).http://bradwilson.typepad.com/blog/2008/07/creating-nullab.html