C#在条件语句中为Nullable

时间:2011-04-18 19:32:42

标签: c# conditional nullable

为什么我们需要在第二个陈述中进行显式演员?

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;

2 个答案:

答案 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?返回类型。这就是条件运算符语句

中发生的情况