可空类型只能用于值类型,不能用于引用类型,引用类型本身支持null值。
如果直接把null赋值给int类型,会出现一个错误"无法将 NULL 转换成'int',因为它是一种值类型"。
赋值时应该使用 int? a = null;
可空类型与一元或二元运算符一起使用是,如果一个操作数或两个操作数都是null,其结果为null。
说白了int?a=null 这句话的意思就是让值类型a可以接收null这个值
--举例1---------
int? a = null;
int? b = a * 5; //b = null
int? c = a + 5; //c = null
--举例2---------
int? a = null;
int? b = null;
if (a > b)
{
Console.WriteLine("a > b is true");
}
else
{
Console.WriteLine("a > b is false");
}
if (a == b)
{
Console.WriteLine("a == b is true");
}
else
{
Console.WriteLine("a == b is false");
}
输出结果
a > b is false
a == b is true
--举例3----------
int? a = null;
int b = -5;
if (a >= b)
{
Console.WriteLine("a>=b");
}
else
{
Console.WriteLine("a<b");
}
if (a <= b)
{
Console.WriteLine("a<=b");
}
else
{
Console.WriteLine("a>b");
}
输出结果(从结果可以看出不能正确识别a>b还是a<b,只要有一个值为null,a>b和a<b这两个条件都是返回false)
a<b
a>b