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

Tom*_*len 5 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
Run Code Online (Sandbox Code Playgroud)

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

jos*_*ley 12

看看三元运算符.

int i = t ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

等同于:

if(t)
{
    i = 1;
}
else
{
    i = 0;
}
Run Code Online (Sandbox Code Playgroud)

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

如果你将冒号替换为"否则",可以把它想象成英语句子:

bool isItRaining = false;
int layersOfClothing = isItRaining? 2 otherwise 1;
Run Code Online (Sandbox Code Playgroud)