可空类型是值类型的取值范围允许值为null(比原来多了一个null值)的一种新类型,它是System.Nullable< T >结构体的实例。
声明可空类型有两种方法:
Nullable<T> 变量名;
T?变量名;
其中T可以是结构体内的任何值类型,但不能是引用类型(类、接口和委托)和可空类型。
Nullable<int> age;
int? age;
可空类型赋值时可在值类型允许的范围内,也可以在声明的时候同时赋值:
int? age = 23;
判断可空类型变量的值是null还是常规值:
(1)、与null进行相等测试,看是否有值:
if(age!=null)
(2)、利用可空类型的HasValue属性:
if(age.HasValue)
可以使用可空类型的Value属性来获取可空类型变量的值,如果变量为null, 会抛出异常,因此不能直接用Value属性来获取可空类型变量的值。
namespace Nullable
{
class Program
{
static void Main(string[] args)
{
Nullable<int> a = 0; //可空类型的声明
int? b = null; //可空类型的声明
if (a != null)