C#空掉线和链接

示例

左侧操作数必须可以为空,而右侧操作数可以为空,也可以不为空。结果将被相应地键入。

不可为空

int? a = null;
int b = 3;
var output = a ?? b;
var type = output.GetType();  

Console.WriteLine($"Output Type :{type}");
Console.WriteLine($"Output value :{output}");

输出:

类型:System.Int32
值:3

观看演示

可空

int? a = null;
int? b = null;
var output = a ?? b;

output的类型将int?等于b或null。

多重合并

合并也可以按链完成:

int? a = null;
int? b = null;
int c = 3;
var output = a ?? b ?? c;

var type = output.GetType();    
Console.WriteLine($"Type :{type}");
Console.WriteLine($"value :{output}");

输出:

类型:System.Int32
值:3

观看演示

空条件链

空合并算子可以与空传播算子一起使用,以提供对对象属性的更安全访问。

object o = null;
var output = o?.ToString() ?? "Default Value";

输出:

类型:System.String
值:默认值

观看演示