操作有点不同
本文关键字:操作 | 更新日期: 2023-09-27 18:33:16
class Program {
static bool? a = null;
static bool b = false;
static void Main( string[] args ) {
//1
if( a!=null ) {
b = (bool) a;
}
//2
if( a!=null && (b=(bool) a) ) { }
}
}
案例 #1 和案例 #2 之间有什么区别吗?
就b
将获得的值而言,它们在功能上是相同的。
但是,由于您使用的是可为空值,因此您应该使用它们的功能:
if(a.HasValue)
b = a.Value;
或者
你可以写:
b = (a.HasValue) ? a.Value : b;
虽然我不得不说@Oded的答案是最好的。
是的,如果 a 不为 null,则触发情况 1,案例 2 仅在 a 不为空时触发,如果 b = 布尔值 a