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

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

Konwersja wartości false na 0 i prawda na 1, czy ktoś może mi wyjaśnić, w jaki sposób? 1: 0 działa?C# Czy ktoś może wyjaśnić tę logikę logiczną?

+1

http://en.wikipedia.org/wiki/Ternary_operation –

Odpowiedz

12

spojrzenie na Ternary Operator.

int i = t ? 1 : 0; 

równa się:

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

składnia można znaleźć w różnych językach, nawet javascript.

myśleć o tym, jak zdaniu angielskim jeśli zamienić dwukropek dla "inaczej":

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

To C# Conditional Operator.

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

Można też zapisać jako:

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

lub

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

Ponieważ T jest prawdziwe, to drukuje 1.

3
bool t= true; 
int i; 

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

Więcej wygląd ?: Operator

3

(? *) jest to operator warunkowy.

Operator warunkowy (? :) zwraca jedną z dwóch wartości w zależności od wartości Boolean wypowiedzi. Operator warunkowy jest postaci

stan? first_expression: second_expression;

tu na ciebie sprawy (prawda 1: 0), ponieważ warunek, który z pewnością jest ustawienie wartości I do 1.

0

wierzę, że wewnętrznie kompilator inline oświadczenie do równowartości jest prawdą,:

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

Ta metoda sprawdza Convert.x aby sprawdzić, czy przekazany parametr ma wartość true return 0, jeśli tak nie jest.

Powiązane problemy