在声明类型后面加个?,可使默认值不为null的变量为null。
using System;
namespace ConsoleApp5
{
internal class Program
{
static void Main(string[] args)
{
bool? b = null; //变量b的默认值为null
try
{
if (b == null)
{
Console.WriteLine(b.Value);
}
}
catch (InvalidOperationException ex)
{
//访问值为null的变量b.Value,会引发 InvalidOperationException 异常
Console.WriteLine(ex.Message);
}
//当b的值不为null时,返回true
if (b.HasValue)
{
//当HasValue返回true时,说明Value包含有意义的值
bool value = b.Value;
Console.WriteLine("b={0}", value);
}
else
{
Console.WriteLine("b=null");
}
Console.ReadKey();
}
}
}