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