web-dev-qa-db-fra.com

Comment utiliser l'opérateur ternaire pour cette instruction en c #

int five = 5;
  • lorsque la variable cinq est égale à 5, écrivez vrai
  • lorsque la variable cinq n'est pas égale à 5, écrivez faux

Comment puis-je écrire une déclaration pour cela dans ASP.NET en utilisant C #?

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

Je vois que vous voulez utiliser ceci pour écrire les valeurs dans ASP.NET. La chaîne answer tiendra votre valeur désirée, utilisez-la comme bon vous semble.

27
roman m

L'opérateur ternaire dans à peu près toutes les langues fonctionne comme une déclaration if en ligne:

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

(Vous ne devriez pas avoir strictement besoin des parenthèses intérieures, mais j'aime les inclure pour plus de clarté.)

Si la valeur booléenne est vraie, alors l'expression entière est égale à la valeur comprise entre ? et :. Si la valeur booléenne est définie sur false, l'expression est égale à la valeur après le :.

Je ne crois pas que vous puissiez inclure des lignes de code au milieu de l'opérateur. Celles-ci sont simplement supposées être des expressions qui remplacent la "phrase" entière de l'opérateur une fois la condition évaluée.

Je suis un gars de Java et je ne connais pas vraiment C #; c'est peut-être différent. Mais probablement pas.

9
James Cronen

Vous pouvez le garder très simple. En comparant cinq à cinq résultats dans un booléen, les éléments suivants sont également possibles:

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

La méthode bool type de ToString () est déjà conçue pour renvoyer "True" ou "False", et si l'alternative minuscule est nécessaire, c'est aussi simple:

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

Si vous n'en avez pas besoin, vous pouvez également éliminer complètement ToString:

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

Dans ASP.NET, déclaratif (c’est-à-dire où se trouve le code HTML):

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

Ou bien, alternativement, dans le code situé derrière (c’est-à-dire où se trouvent votre code et vos classes C #):

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

Juste pour être sûr, vous devriez mettre vos expressions ternaires dans parens (), car l'opérateur ternaire?: A une préséance subtile qui peut vous mordre si vous ne regardez pas.

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

Ce n'est probablement pas important avec cet exemple, mais si le ternaire fait partie d'une expression complexe, les règles de priorité peuvent amener le compilateur à interpréter l'expression différemment de ce que vous vouliez.

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

Bien que, pour cet exemple, je n’utiliserais pas du tout l’opérateur ternaire:

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

Encore une autre variante:

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

Le plus simple est Console.WriteLine ((five == 5) .ToString ());

0
Mahesh

À partir des commentaires de @ JohnK, utilisez:

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

Représente la valeur booléenne true/false en tant que chaîne. Ce champ est en lecture seule. https://msdn.Microsoft.com/en-us/library/system.boolean.truestring(v=vs.110).aspx

0
user5377037

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

Cela fonctionne comme ceci:

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

MODIFIER:

Ce que j'avais probablement pensé:

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

en utilisant l'instruction d'opérateur ternaire en c # avec Eval. (En page aspx)

<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