2011-10-27 27 views

Respuesta

12

Ésta es una declaración ternaria. Lo traduje a un bloque if/else para que puedas leerlo.

int salesTeamId; 

if(person == null) 
{ 
    salesTeamId = -1; 
} 
else 
{ 
    salesTeamId = person.SalesTeam.Id; 
} 
+0

@Dylan: Gracias por señalar la referencia .SalesTeam perdido – Akron

8

Eso es the Ternary operator. Es una taquigrafía if declaración equivalente a:

int salesTeamId; 
if(person == null) 
{ 
    salesTeamId = -1; 
} 
else 
{ 
    salesTeamId = person.SalesTeam.Id; 
} 
1

Si la persona es nula, entonces se asigna salesTeamId -1. Si la persona es nula nula, entonces salesTeamId tiene asignada person.SalesTeam.Id.

El operador terciario es una instrucción if-then-else incrustada en una línea (por lo general, puede extenderse a través de varias líneas, pero eso derrota un poco el punto).

Se puede aclarar las cosas a añadir un poco de paréntesis:

int salesTeamId = (person == null ? -1 : person.SalesTeam.Id); 

El siguiente pseudocódigo también puede ayudar:

int salesTeamId = (IF person == null THEN USE -1 ELSE USE person.SalesTeam.Id); 
2

Es un implícito sentencia if (llamado un operador ternario).

Básicamente es comprobar si la persona es nula, devolver -1 else return person.SalesTeam.id. El valor de retorno se asigna directamente a la variable salesTeamId.

int salesTeamId; 
if(person == null) 
{ 
salesTeamId = -1; 
} 
else 
{ 
salesTeamId = person.SalesTeam.Id 
} 

es directamente equivalente

2

Esto es equivalente a

int salesTeamId; 
if (person == null) 
    salesTeamId = -1; 
else 
    salesTeamId = person.SalesTeam.Id; 

Comprobar ?: Operator (C#)

4

Significa,

int salesTeamId; 

if (person == null) 
    salesTeamId = -1; 
else 
    salesTeamId = person.SalesTeam.Id; 
3

Se llama el conditional operator.

El operador condicional (? :) es un operador ternario (toma tres operandos ). El operador condicional funciona de la siguiente manera:

  • El primer operando se convierte implícitamente en bool. Se evalúa y todos los efectos secundarios se completan antes de continuar.
  • Si el primer operando se evalúa como verdadero (1), se evalúa el segundo operando.
  • Si el primer operando se evalúa como falso (0), se evalúa el tercer operando.

Su ejemplo es más o menos equivalente a este código:

int salesTeamId; 
if (person == null) 
{ 
    salesTeamId = -1; 
} 
else 
{ 
    salesTeamId = person.SalesTeam.Id; 
} 
Cuestiones relacionadas