webentwicklung-frage-antwort-db.com.de

Verwendung des ternären Operators für diese Anweisung in c #

int five = 5;
  • wenn die Variable fünf gleich 5 ist, schreibe true
  • wenn die Variable fünf nicht gleich 5 ist, schreibe false

Wie schreibe ich dazu in ASP.NET eine Anweisung mit C #?

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

Ich sehe, dass Sie dies verwenden möchten, um die Werte in ASP.NET zu schreiben. Die answer-Zeichenfolge enthält den gewünschten Wert. Verwenden Sie ihn nach Belieben.

27
roman m

Der ternäre Operator funktioniert in fast jeder Sprache als Inline-if-Anweisung:

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

(Sie sollten die inneren Eltern nicht unbedingt brauchen, aber ich möchte sie der Klarheit halber hinzufügen.)

Wenn der boolesche Wert als wahr ausgewertet wird, entspricht der gesamte Ausdruck dem Wert zwischen ? und :. Wenn der Boolesche Wert als falsch ausgewertet wird, entspricht der Ausdruck dem Wert nach dem :.

Ich glaube nicht, dass Sie Codezeilen in die Mitte des Operators einfügen können. Es handelt sich einfach um Ausdrücke, die den gesamten Operator "Satz" ersetzen, sobald die Bedingung ausgewertet wird.

Ich bin ein Java-Typ und kenne C # nicht wirklich. Vielleicht ist es anders. Aber wahrscheinlich nicht.

9
James Cronen

Du könntest es wirklich einfach halten. Ein Vergleich von fünf zu fünf führt zu einem booleschen Ergebnis, sodass Folgendes möglich ist:

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

Die Methode bool type ToString () ist bereits dafür ausgelegt, "True" oder "False" zurückzugeben. Wenn die Alternative zu Kleinbuchstaben erforderlich ist, ist dies ebenfalls einfach:

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

Wenn Sie es nicht in einem Kleinbuchstaben benötigen, können Sie den ToString auch vollständig eliminieren:

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

In ASP.NET deklarativ (d. H., Wohin der HTML-Code geht):

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

Oder alternativ im Code dahinter (d. H. Wo sich Ihr C # -Code und Ihre Klassen befinden):

someTextBox.Text = yourVariable == 5 ? "true" : "false";
2
Abel

Um sicherzugehen, sollten Sie Ihre ternären Ausdrücke in parens () setzen, da der ternäre Operator?.

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

In diesem Beispiel ist dies wahrscheinlich nicht wichtig. Wenn das Ternary jedoch Teil eines komplexen Ausdrucks ist, kann der Compiler durch Vorrangregeln den Ausdruck anders interpretieren als beabsichtigt.

1
dar7yl
Response.Write(five == 5 ? "True" : "False");

Für dieses Beispiel würde ich jedoch den ternären Operator überhaupt nicht verwenden:

Response.Write(five == 5);
1
devuxer

Noch eine andere Variante:

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

Die einfachste Sache ist Console.WriteLine ((five == 5) .ToString ());

0
Mahesh

Von @ JohnKs Kommentar verwenden:

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

Repräsentiert den booleschen Wert true/false als Zeichenfolge. Dieses Feld ist schreibgeschützt. https://msdn.Microsoft.com/de-de/library/system.boolean.truestring(v=vs.110).aspx

0
user5377037

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

Es funktioniert so:

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

BEARBEITEN:

Was ich wahrscheinlich gedacht habe:

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

verwenden der ternären Operatoranweisung in c # mit Eval. (In Aspx-Seite)

<span><%# Eval("productname").ToString().Length<=0 ? "<label style=\"color: red;\">Notes<span></span></label>" : "<label style=\"color: blue;\">Notes<span></span></label>"%></span>
0
RPS