1.可空类型:表示在值类型的正常取值范围内再加上一个null值
(1)结构:可空类型是泛型结构Nullable<T>的实例,其声明为:public struct Nullable<T> where T : struct,语法T?是Nullable<T>的简写形式,这两种形式是等效的:
Nullable<int> myNullableInt = new Nullable<int>(),等价于int ? myNullableInt = null;
(2)可空类型包含以下实例成员:
1).HasValue:只读属性,判断是否有值,如果当前值非空,返回true,否则返回false
2).Value:只读属性,如果当前值非空,可以正常访问,否则说明Value不包含有意义的值,此时访问Value时会抛出异常InvalidOperationException
3).GetValueOrDefault():实例方法,如果当前值非空(HasValue为true),返回Vlaue的值,否则返回T类型的默认值(即私有字段value的默认值)
4).GetValueOrDefault (T defaultValue):实例方法,如果当前值非空(HasValue为false),返回Vlaue的值,否则返回默认值defaultValue