// Example bool is true
bool t = true;
// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1
这会将false转换为0并将true转换为1,有人可以向我解释这是怎么回事? 1:0有效吗?
答案 0 :(得分:12)
int i = t ? 1 : 0;
等同于:
if(t)
{
i = 1;
}
else
{
i = 0;
}
这种语法可以在各种语言中找到,甚至是javascript。
如果你用“否则”换掉冒号,就把它想象成英语句子:
bool isItRaining = false;
int layersOfClothing = isItRaining? 2 otherwise 1;
答案 1 :(得分:4)
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。
答案 2 :(得分:3)
如果t等于为真,则i = 1,否则i = 0
答案 3 :(得分:3)
bool t= true;
int i;
if(t)
{
i=1;
}
else
{
i=0;
}
了解更多?:运算符
答案 4 :(得分:3)
(?*)这是条件运算符。
条件运算符(?:)根据布尔表达式的值返回两个值中的一个。条件运算符的格式为
条件? first_expression:second_expression;
这里是你的情况(真?1:0),因为条件为真,这肯定是将i的值设置为1.
答案 5 :(得分:0)
我相信编译器会在内部将语句内联到相当于:
Console.WriteLine(Convert.ToInt32(T));
此Convert.x方法检查传递的参数是否为true,如果不是则返回0。