Pregunta

Cuando eras un niño, ¿alguna vez se pregunta a sus padres cómo se escribe algo y que le dijo que fuera a mirar hacia arriba? Mi primera impresión fue siempre "si bien podría mirar hacia arriba molestaría que necesitan ayuda con todas sus letras". (Sí, sí que sé fonética)

... de todos modos, yo estaba mirando algo de código y me encontré con un ejemplo como:

 txtbx.CharacterCasing = (checkbox.Checked) ? CharacterCasing.Upper : CharacterCasing.Normal;

Me puede averiguar lo que hace esta operación, pero, obviamente, no puedo Google para? o:. y no puedo encontrarlos en la búsqueda de "operadores de C #", LINQ, expresiones lambda, etc. Así que tengo que hacer esta pregunta tonta para que pueda ir empezar a leer sobre el tema

¿Cuáles son los operadores?

¿Fue útil?

Solución

?: es la href="http://msdn.microsoft.com/en-us/library/ty67wk28%28VS.80%29.aspx" rel="nofollow noreferrer"> condicional operador , y la mejor manera de averiguarlo es pedir aquí!

condition ? first_expression : second_expression;
  

Si la condición es verdadera, primera expresión se evalúa y se convierte en el resultado; Si es falso, la segunda expresión se evalúa y se convierte en el resultado. Sólo una de las dos expresiones se evalúan cada vez.

Es extremadamente útil para facilitar la lectura de las tareas, cuando toda la expresión es relativamente corto:

string name = string.IsNullOrEmpty(user.Nickname) ? user.Fullname : user.Nickname

Es mucho más fácil y más rápido que:

string name = user.Fullname;
if(!string.IsNullOrEmpty(user.Nickname))
{
    name = user.Nickname;
}

Otros consejos

? es una declaración inline-if. Esto significa que si checkbox.Checked es true, entonces CharacterCasing.Upper será el valor de la expresión, de lo contrario CharacterCasing.Normal será.

Funciona de esta manera:

type value = condition ? trueValue : falseValue;

que es una línea if. "?" El código para el caso ":" es el de la otra

.

El? también se conoce como el ternario operador

Por cierto, resulta que se puede buscar ":" en Wikipedia y encontrar esto.

Tenga en cuenta que también es a veces llamado "el" operador ternario, ya que su operador de la única ternario (3-argumento) en C-como idiomas.

Por cierto. Como usted está aprendiendo C # Salida ?? operador A veces es mucho mejor alternativa a:?.

Considere lo siguiente:

Console.WriteLine(user.LastName ?? "no last name provided");

vs

Console.WriteLine(user.LastName != null ? user.LastName : "no last name provided");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top