if语句与"?/:"之间的区别操作者

时间:2015-05-01 21:40:38

标签: c# visual-studio-2012 if-statement

我这里有这段代码。在case ServiceType.Register:中,我看似是两个等效语句,一个使用常规if语句,另一个使用三元运算符?/:。对于if语句,VS报告没有错误。不过有这条线:

IsXML == true ? PopulateRegister(ParseType.Xml) : PopulateRegister(ParseType.Str);

VS错误地说:

  

只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句

任何人都知道为什么常规if语句没有错误但是如果你使用"?/:" (一个班轮)抛出错误? Pic也附上了。

switch (this.ServiceType)
{
    case SerivceType.Login:
        PopulateLogin();
        break;
    case SerivceType.Register:

        if (IsXML == true)
            PopulateRegister(ParseType.Xml);
        else
            PopulateRegister(ParseType.Str);

        IsXML == true ? PopulateRegister(ParseType.Xml) : PopulateRegister(ParseType.Str);

        break;
    case SerivceType.Verify:
        PopulateVerify();
        break;
}

enter image description here

0 个答案:

没有答案