可空类型 Nullable<T>,简写形式是T?,其中T可以是任意的值类型,但不能是引用类型
例如
int? a = 10; int? b = null;给可空类型赋默认值
int d = c ?? -1;
解析:当c为null时,则c的值是-1,给d的值也就是-1
说穿了,c#中提供了这种数据类型,是为了让值类型的变量值也可以是null,不声明为可空类型的值类型初始化时是有默认值的,也不能赋值为null,通常只有引用类型的变量不初始化时为null,可以主动赋值为null,也是为了这样一种情况,在数据库中声明了一个值类型的字段且可以为null,当你要存的值也是null时,若你不使用可空类型,则处理逻辑会各种switch后,才通过sql语句在数据库中存了null,说了这么多,觉得说的给废话一样,哈哈,不知道有缘见到这文章的哥们看懂了没,另外在java中是没有这种数据类型的