5
// Example bool is true
bool t = true;

// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1

这会将 false 转换为 0,将 true 转换为 1,有人可以向我解释一下 t 是怎么回事吗?1 : 0 有效吗?

4

6 回答 6

12

查看三元运算符

int i = t ? 1 : 0;

等于:

if(t)
{
    i = 1;
}
else
{
    i = 0;
}

这种语法可以在多种语言中找到,甚至是 javascript。

如果你把冒号换成“否则”,可以把它想象成一个英文句子:

bool isItRaining = false;
int layersOfClothing = isItRaining? 2 otherwise 1;
于 2010-09-07T09:21:29.717 回答
4

它是C# 条件运算符。

i = does t == true? if yes, then assign 1, otherwise assign 0.

也可以写成:

if (t == true)
   t = 1;
else 
   t = 0;

或者

if (t)
  t = 1;
else
  t = 0;

由于 t 为真,它打印 1。

于 2010-09-07T09:21:47.880 回答
3

如果 t 等于 true 则 i=1 否则 i=0

三元运算符

于 2010-09-07T09:21:28.717 回答
3
bool t= true;
int i;

if(t) 
{
 i=1;
}
else
{
 i=0;
}

欲了解更多信息?:操作员

于 2010-09-07T09:23:05.953 回答
3

(? *) 这是条件运算符。

条件运算符 (?:) 根据布尔表达式的值返回两个值之一。条件运算符的形式为

健康)状况 ?第一个表达式:第二个表达式;

在你的情况下(true?1:0),因为条件为真,这肯定是将 i 的值设置为 1。

于 2010-09-07T09:25:07.447 回答
0

我相信在内部编译器会将语句内联为等效于:

Console.WriteLine(Convert.ToInt32(t));

此 Convert.x 方法检查传递的参数是否为 true,否则返回 0。

于 2010-09-07T09:29:40.297 回答