(适用于vs2005)
给一个对象赋值为空表示它将不再使用。但是基本类型是不能被赋空值的。
可空类型是决定一个值对象是否为空的一致的方案。在一个类型的声明中加上类型修饰符?就可以声明一个可空类型:
double? variablea=null;
variablea对象是可空类型,其基本类型是双精度。一个可空类型用HasValue和Value两个属性扩展了基本类型的借口。两个属性都是公共和只读的。HasValue是布尔型属性,而Value的类型与基本类型相同。如果把可空类型赋给一个非空值,HasValue为真并且可以读取Value属性。否则,HasValue为假,当读取Value属性时就会引发异常。可空类型的合法取值范围包括空值和基本类型的范围。
用空接合运算符来设置可空类型的默认值。该运算符就是??。默认值的类型必须与基本类型相同。如果可空类型就返回默认值——否则无值。下面代码设置variable1的默认值为0。否则,variable2的值被赋为variable1的值。
double variable2= variable1??0;
下面的代码演示了可空类型:
static void Main()
{
int? variablea=null;
Console.WriteLine(variablea.HasValue);//false
int variableb= variablea??5;
Console.WriteLine(variableb);//5
}
{
int? variablea=null;
Console.WriteLine(variablea.HasValue);//false
int variableb= variablea??5;
Console.WriteLine(variableb);//5
}