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 

Esto convierte a falso en 0 y verdadero a 1, ¿alguien me puede explicar cómo el t? 1: 0 funciona?C# ¿Alguien puede explicar esta lógica booleana

+1

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

Respuesta

12

Mira el Ternary Operator.

int i = t ? 1 : 0; 

equivale a:

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

Esta sintaxis se pueden encontrar en una variedad de idiomas, incluso javascript.

Piense en ello como una sentencia de Inglés Si se cambia el colon de "otra manera":

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

Es la C# Conditional Operator.

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

también se puede escribir como:

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

o

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

Como T es cierto, se imprime 1.

3
bool t= true; 
int i; 

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

Para más mirada ?: operador

3

(? *) este es un operador condicional.

El operador condicional (? :) devuelve uno de dos valores según el valor de una expresión booleana. El operador condicional es de la forma

condición? first_expression: second_expression;

aquí en caso que (verdadero 1: 0), ya que la condición es verdadera, lo que sin duda está marcando valor de i en 1.

0

creo que internamente el compilador inline la declaración hasta el equivalente de:

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

Este método Convert.x comprueba si el parámetro pasado es verdadero devuelve 0 si no lo está.

Cuestiones relacionadas