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
值:默认值
观看演示