C#多重序列?条件运算符

时间:2015-03-24 22:43:15

标签: c#

我参加了考试并看到了类似的问题;

var b = (1==2) ? (1==1) ? (2==1) ? "A" : "B" : "C" : "D";

什么是b以及它如何运作这样的条件?

感谢。

1 个答案:

答案 0 :(得分:2)

A ternary operator这样做:
声明

variable = condition ? value1 : value2

相当于

if (condition) 
{
  variable = value1;
} 
else 
{
  variable = value2;
}

所以在你的情况下,

var b = (1==2) ? (1==1) ? (2==1) ? "A" : "B" : "C" : "D";

只是一些嵌套的三元运算符,与

相同
    var b; 
    if (1==2)
    {
      if (1==1) 
      {
        if (2==1) 
        {
          b = "A";
        }
        else 
        {
         b = "B";
        }
      }
      else 
      {
        b = "C";
      }
    }
    else
    {
      b = "D";
    }