C#中??运算符的作用
如果 ?? 运算符的左操作数非空,
该运算符将返回左操作数,否则返回右操作数。
注意:
可空类型可以包含值,或者可以是未定义的。
?? 运算符定义当可空类型分配给非可空类型时返回的默认值。
如果在将可空类型分配给非可空类型时不使用 ?? 运算符,将生成编译时错误。
如果使用强制转换,并且当前未定义可空类型,
将发生 InvalidOperationException 异常。
//微软官方实例应用说明 using System; class MainClass { static int? GetNullableInt() { return null; } static string GetStringValue() { return null; } static void Main() { // ?? operator example. int? x = null; // y = x, unless x is null, in which case y = -1. int y = x ?? -1; // Assign i to return value of method, unless // return value is null, in which case assign // default value of int to i. int i = GetNullableInt() ?? default(int); string s = GetStringValue(); // ?? also works with reference types. // Display contents of s, unless s is null, // in which case display "Unspecified". Console.WriteLine(s ?? "Unspecified"); } }