c#有人可以解释这个布尔逻辑

时间:2010-09-07 09:19:59

标签: c# asp.net boolean-logic

// 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有效吗?

6 个答案:

答案 0 :(得分:12)

查看Ternary Operator

int i = t ? 1 : 0;

等同于:

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

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

如果你用“否则”换掉冒号,就把它想象成英语句子:

bool isItRaining = false;
int layersOfClothing = isItRaining? 2 otherwise 1;

答案 1 :(得分:4)

这是C# Conditional Operator.

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

ternary operator

答案 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。