C#中 ? 运算符 和 ??运算符

 ?? 运算符定义在将可空类型分配给非可空类型时返回的默认值。

int? c = null;

//若 c 为 null,则 d 为 -1,否则把 c 值赋予 d
int d = c ?? -1;

类型名称后加问号,如:

int? i = null;
double? d = null;
bool? b = null;
可指定可为 null 的 int、double、bool 等类型。

或者用 Nullable,和上述方法等价,如:

Nullable<int> i = null;

上述类型不能是引用类型。

可空类型的每个实例都具有两个公共的只读属性:HasValue 和 Value,示例:

int? x = 10;
if (x.HasValue) /* 或者 x != null */
{
    System.Console.WriteLine(x.Value);
}
else
{
    System.Console.WriteLine("Undefined");
}
原文地址:https://www.cnblogs.com/dudu837/p/1524931.html