我问的原因是你可以使用Value属性将可空类型转换为常规类型。这让我觉得常规类型只是包含在可空类型中。
答案 0 :(得分:7)
是的,它是一个通用结构:
public struct Nullable<T> where T : struct, new()
如果你只看到T?
语法 - 但这只是syntactic sugar,那么这可能会更令人困惑,编译器正在将其更改为Nullable<T>
。
来源:http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx,http://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx
答案 1 :(得分:3)
表示其底层的对象 type是一个值类型,也可以是 像参考类型一样指定null。
[顺便说一句,如果你好奇的话,你可以使用反射器'来看看引擎盖']
答案 2 :(得分:2)
根据MSDN "Nullable types are instances of the System.Nullable<T> struct. A nullable type can represent the correct range of values for its underlying value type, plus an additional null value"