为什么我们需要在第二个陈述中进行显式演员?
bool? a = null;
bool b = false;
bool c = true;
1)。
if(b || c)
a = b;
else
a = null;
2。)a = (b || c)?(Nullable<bool>)b:null;
答案 0 :(得分:3)
条件运算符是一个表达式,因此它需要一个返回类型 - 两种情况都必须具有相同的返回类型。在您的情况下,无法自动确定返回类型,因此您需要强制转换。
答案 1 :(得分:0)
要添加到Femaref,等效的“if”代码将类似于
private static bool? Assign(bool b, bool c)
{
if (b || c)
{
return b;
}
else return null;
}
...
a = Assign (b,c)
注意bool?返回类型。这就是条件运算符语句中发生的情况