为进一步减少处理可空类型所需的代码量,使可空变量的处理变得更简单,可以使用??运算符。这个运算符称为空接合运算符(null coalescing operator),是一个二元运算符,允许给可能等于null的表达式提供另一个值。如果第一个操作数不是null,该运算符就等于第一个操作数,否则,该运算符就等于第二个操作数。下面的两个表达式的作用是相同的:
opl ?? op2
opl == null ? op2 : opl
在这两行代码中,opl可以是任意可空表达式,包括引用类型和更重要的可空类型。因此,如果可空类型是null,就可以使用??运算符提供要使用的默认值,如下所示:
int? opl = null;
int result = opl * 2 ?? 5;
在这个示例中,opl是null,所以opl*2也是null。但是,??运算符检测到这个情况,并把值5赋予result。这里要特别注意,在结果中放入int类型的变量result不需要显式转换。??运算符会自动处理这个转换。还可以把??表达式的结果传入int?中:
int? result = opl * 2 ?? 5;
在处理可空变量时,??运算符有许多用途,它也是一种提供默认值的便捷方式,不需要使用if结构中的代码块或容易引起混淆的三元运算符。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>