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之间有什么区别吗?
答案 0 :(得分:6)
就价值b
而言,它们在功能上是相同的。
虽然,因为你使用的是nullables,你应该使用它们的功能:
if(a.HasValue)
b = a.Value;
答案 1 :(得分:1)
或者你可以写:
b = (a.HasValue) ? a.Value : b;
虽然我不得不说@Oded的答案是最好的答案。
答案 2 :(得分:0)
是的,如果a不为null,则触发案例1,如果a不为null,则仅触发案例2,如果b = bool a,则仅触发