// 单问号
// 用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,
// 意思是这个数据类型是 Nullable 类型的。
static void Main(string[] args)
{
int? x1 = null;
Console.WriteLine("x: {0}", x1);// x:
}
// 双问号
// 双问号 可用于判断一个变量在为 null 时返回一个指定的值。
// 也可以理解为是简化版的三元表达式
static void Main(string[] args)
{
int? x1 = null;
Console.WriteLine("x: {0}", x1);
// x1是null,所以把第二个值给y,所以是10
int y = x1 ?? 10;
Console.WriteLine("y: {0}", y);
int? x2 = 1;
// x2的初始值不为null,所以z的初始值为1
int z = x2 ?? 20;
Console.WriteLine("z: {0}", z);
/* x:
y: 10
z: 1
*/
}