2011-05-21 29 views
5

Tengo una variable llamada full_name si full_name tiene una longitud de cadena> 5 Me gustaría establecer nm a los primeros 4 caracteres de full_name; de ​​lo contrario, me gustaría establecer nm a todos los caracteres de full_name.confundido con el? operador en C#

var nm; 

if (full_name.Length > 5) 
{ 
    nm = full_name.Substring(0, 4); 
} 
else 
{ 
    nm = full_name; 
}; 

Estoy totalmente confundido con el "?" operador.

¿Podría usarlo para esto?

+3

Por cierto, el nombre que es el "operador condicional" –

+0

o incluso a veces llamado "operador ternario" (algo incorrectamente) http://en.wikipedia.org/wiki/Ternary_operation – yas4891

+0

@ yas4891 sí, es comúnmente mal llamado :) que es como llamar a '+' "un operador binario" - solo te dice la firma, pero no la intención. Ahora ... Solo necesitamos unos pocos operadores ternarios más para que actúen como ejemplos ... –

Respuesta

14
var nm = full_name.Length > 5 ? full_name.Substring(0, 4) : full_name; 
+0

JudyJ: No necesita más explicaciones ya que Marc lo ha resuelto (¡literalmente!), Pero puede leer este artículo en MSDN puramente desde una perspectiva académica. http://msdn.microsoft.com/en-us/library/ty67wk28(v=VS.100).aspx – Kanini