Domanda

int five = 5;
  • quando la variabile cinque è uguale a 5, true
  • quando la variabile cinque non è uguale a 5, false

Come faccio a scrivere una dichiarazione di questo in ASP.NET utilizzando C #?

È stato utile?

Soluzione

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

Vedo che si desidera utilizzare questo per scrivere i valori in ASP.NET, la stringa answer conterrà il vostro valore desiderato, utilizzare che come ti pare.

Altri suggerimenti

L'operatore ternario in quasi tutte le lingue funziona come un inline if:

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

(Si consiglia di non strettamente bisogno delle parentesi interne, ma mi piace di includerli per chiarezza.)

Se il booleano restituisce true, allora l'intera espressione è uguale al valore tra il ? e :. Se il booleano restituisce false, l'espressione è uguale al valore dopo la :.

Io non credo che si possa includere righe di codice in mezzo dell'operatore. Questi dovrebbero essere semplicemente espressioni che sostituiscono l'intera operatore "frase" una volta che la condizione viene valutata.

Sono un tipo Java e non so davvero C #; forse è diverso. Ma probabilmente non.

Si potrebbe tenerlo molto semplice. Confrontando cinque a 5 i risultati in un valore booleano, quindi il seguente è anche possibile:

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

Il bool di tipo ToString () metodo è già predisposta per tornare "vero" o "falso", e se è necessaria l'alternativa minuscole, questo è troppo semplice:

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

Se non ne hai bisogno caratteri minuscoli, si può effettivamente eliminare completamente la ToString così:

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

In ASP.NET, dichiarativa (cioè, in cui il codice HTML va):

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

O, in alternativa, in codice dietro (vale a dire, in cui il codice C e le classi sono #):

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

Anche se, per questo esempio, non vorrei usare l'operatore ternario a tutti:

Response.Write(five == 5);

Giusto per essere sicuro, si dovrebbe mettere le espressioni ternari in parentesi (), in quanto l'operatore ternario:?. Ha la precedenza sottile che può mordere se non guardi

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

E 'probabilmente non è importante con questo esempio, ma se il ternario è parte di un'espressione complessa, regole di precedenza potrebbe rendere il compilatore interpretare l'espressione in modo diverso da quello desiderato.

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

Funziona in questo modo:

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

EDIT:

Quello che avevo probabilmente stato thkinking:

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

Ancora un'altra variante:

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

cosa più semplice è Console.WriteLine ((cinque == 5) .ToString ());

Da @ commento uso di Jöhnk:

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

rappresenta il valore booleano vero / falso come una stringa. Questo campo è di sola lettura. https://msdn.microsoft .com / it-it / library / system.boolean.truestring (v = vs.110) aspx

using operatore ternario in C # con Eval. (Nella pagina aspx)

<span><%# Eval("productname").ToString().Length<=0 ? "<label style=\"color: red;\">Notes<span></span></label>" : "<label style=\"color: blue;\">Notes<span></span></label>"%></span>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top