4

前段时间我认为 Nullable<> 值类型是类,封装了值类型和 HasValue 的 bool。使用一些隐式的 null 强制转换操作符,刚刚在 BCL 中实现。

但是作为一个结构,如何实现呢?Nullable<> 结构对于 CLR 来说是“特殊的”吗?

4

3 回答 3

8

Nullable<T>被定义为普通结构,但是 CLR 中有特殊的钩子可以[mscorlib]System.Nullable`1根据HasValue属性将一个实例装箱/拆箱为空。这里有更多细节

于 2011-01-14T18:06:29.717 回答
0

Nullable<>是在 mscorlib 中实现的结构。

一件特别的事情是在 C# 编译器中,它识别X?Nullable<X>.

于 2011-01-14T18:11:25.643 回答
0

这是关于 Nullable Types 的 MSDN 文章。

http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=VS.100).aspx

我不确定你想用 Nullable<> 做什么,除非你误解了 Nullable 类型是System.Nullable<T>结构的实例。

于 2011-01-14T18:05:06.917 回答