Pregunta

int five = 5;
  • Cuando la variable cinco es igual a 5, escriba verdadero
  • Cuando la variable cinco no es igual a 5, escriba falso

¿Cómo escribo una declaración para esto en ASP.NET usando C#?

¿Fue útil?

Solución

int five = 5;
string answer = five == 5 ? "true" : "false";

Veo que quieres usar esto para escribir los valores en ASP.NET, el answer La cadena mantendrá su valor deseado, use eso como desee.

Otros consejos

El operador ternario en casi todos los idiomas funciona como una declaración en línea si:

Console.WriteLine((five == 5) ? 'true' : 'false');

(No debes necesitar estrictamente los parenses internos, pero me gusta incluirlos para mayor claridad).

Si el booleano se evalúa como verdadero, entonces toda la expresión es igual al valor entre el ? y :. Si el booleano se evalúa en falso, la expresión es igual al valor después del :.

No creo que pueda incluir líneas de código en el medio del operador. Simplemente se supone que son expresiones que reemplazan toda la "frase" del operador una vez que se evalúa la condición.

Soy un chico de Java y realmente no sé C#; Quizás sea diferente. Pero probablemente no.

Podrías mantenerlo realmente simple. Comparando cinco a 5 resultados en un booleano, por lo que también es posible lo siguiente:

int five = 5;
Console.WriteLine((five == 5).ToString());

los bool tipo Encadenar() El método ya está diseñado para devolver "verdadero" o "falso", y si se necesita la alternativa minúscula, eso también es simple:

int five = 5;
Console.WriteLine((five == 5).ToString().ToLower());

Si no lo necesita, también puede eliminar por completo la tostración:

int five = 5;
Console.WriteLine(five == 5);

En ASP.NET, declarativo (es decir, donde va el HTML):

<p>Is this five? <%= yourVariable == 5 ? "true" : "false"; %></p>

O, alternativamente, en código detrás (es decir, dónde están su código y clases C#):

someTextBox.Text = yourVariable == 5 ? "true" : "false";
Response.Write(five == 5 ? "True" : "False");

Sin embargo, para este ejemplo, no usaría el operador ternario en absoluto:

Response.Write(five == 5);

Solo para estar seguro, debe poner sus expresiones ternarias en Parens (), porque el operador ternario?: Tiene una precedencia sutil que puede morderlo si no está mirando.

string answer = ( (five==5) ? ("true") : ("false") );

Probablemente no sea importante con este ejemplo, pero si el ternario es parte de una expresión compleja, las reglas de precedencia podrían hacer que el compilador interprete la expresión de manera diferente a lo que pretendía.

five==5?console.writeline('true'):console.writeline('false')

Funciona así:

<if-expression> ? <code-when-if-expression-evaluates-true> : <code-when-if-expression-evaluates-false>

EDITAR:

Lo que probablemente había sido Thinking:

<%=five==5?'true':'false'%>

Otra variación más:

string message = XmlConvert.ToString(5 == five);
Console.Write(message);

La cosa más simple es console.writeLine ((cinco == 5) .ToString ());

Desde el comentario de @Johnk use:

int five = 5;
string answer = five == 5 ? bool.TrueString : bool.FalseString;

Representa el valor booleano verdadero/falso como una cadena. Este campo es de solo lectura.https://msdn.microsoft.com/en-us/library/system.boolean.truestring(v=vs.110).aspx

Uso de la declaración del operador ternario en C# con Eval. (En la página ASPX)

<span><%# Eval("productname").ToString().Length<=0 ? "<label style=\"color: red;\">Notes<span></span></label>" : "<label style=\"color: blue;\">Notes<span></span></label>"%></span>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top