C# net中的可空类型

C# net中的可空类型,c#,.net,.net-3.5,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]是一个可为空的公共字段 System.Nullable`后面的

为什么

properties[5].PropertyType.GetGenericTypeDefinition() == 
   Type.GetType("System.Nullable`1")
等于true,而

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

Properties[5]
是一个
可为空的公共
字段


System.Nullable`后面的`1
是什么意思?

1表示该类型是泛型类型。既然可以有一个名为“Foo”的类型和一个名为“Foo”的类型,那么需要有一些内部方法来区分这两种类型


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

Nullable`1是您知道的类的真实名称,在C#(或在VB.Net中为null(of T))

Nullable是一个静态类,包含许多用于使用Nullable的帮助器方法