.net中的可空类型

时间:2009-05-12 01:21:04

标签: c# .net .net-3.5

为什么

properties[5].PropertyType.GetGenericTypeDefinition() == 
   Type.GetType("System.Nullable`1")

时,

等于true

properties[5].PropertyType.GetGenericTypeDefinition() ==
   Type.GetType("System.Nullable")

等于假?

Properties[5]public Nullable<DateTime>字段。

“1 after the System.Nullable”是什么意思?

2 个答案:

答案 0 :(得分:5)

`1表示该类型是泛型类型。由于可能有一个名为“Foo”的类型以及一个名为“Foo”的类型,因此需要有一些内部方法来区分这两种类型。

由于存在非泛型System.Nullable类型,但您使用的是泛型类型,因此与GetType(“System.Nullable”)的比较将始终返回false。

答案 1 :(得分:3)

Nullable`1是您知道的类的真实姓名Nullable&lt; T&gt;在C#(或VB.Net中的Nullable(Of T))。

Nullable是一个静态类,有许多辅助方法可以使用Nullable&lt; T&gt;。