2010-09-07 57 views
5
// Example bool is true 
bool t = true; 

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

這將假轉換爲0和真到1,有人可以向我解釋如何t? 1:0有效?c#有人可以解釋這個布爾邏輯

+1

http://en.wikipedia.org/wiki/Ternary_operation – 2010-09-07 09:21:47

回答

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; 
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.

3
bool t= true; 
int i; 

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

更多的外觀?:操作

3

(? *)這是條件運算符。

條件運算符(?:)根據布爾表達式的值返回兩個值中的一個。條件運算符的形式爲

條件? first_expression:second_expression;

在這裏,你的情況下(真?1:0),因爲條件爲真,這肯定是我設置的值設置爲1

0

我認爲,內部編譯器將內聯語句相當於:

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

此Convert.x方法檢查傳遞的參數是否爲true,如果不是,則返回0。