C#でこのステートメントに三元演算子を使用する方法
-
16-09-2019 - |
質問
int five = 5;
- 変数5が5に等しい場合、trueを書きます
- 変数5が5に等しくない場合、falseを書き込みます
C#を使用してASP.NETでこのステートメントを書くにはどうすればよいですか?
解決
int five = 5;
string answer = five == 5 ? "true" : "false";
これを使用して、asp.netで値を書きたいと思っています。 answer
文字列はあなたの希望の価値を保持し、あなたが好きなようにそれを使用します。
他のヒント
ほぼすべての言語の三元演算子は、インラインのIFステートメントとして機能します。
Console.WriteLine((five == 5) ? 'true' : 'false');
(あなたは厳密に内側のパレンスを必要とするべきではありませんが、私はそれらを明確にするためにそれらを含めるのが好きです。)
ブールがtrueに評価された場合、式全体が間の値に等しくなります ?
と :
. 。ブールがfalseに評価された場合、式は後の値に等しくなります :
.
オペレーターの中央にコードの行を含めることができるとは思わない。これらは、条件が評価されると、演算子全体の「フレーズ」を置き換える式であると単に想定されています。
私はJavaの男で、C#を本当に知りません。多分それは違います。しかし、おそらくそうではありません。
本当にシンプルに保つことができます。 5〜5の結果をブール値で比較するため、以下も可能です。
int five = 5;
Console.WriteLine((five == 5).ToString());
ブール 種類 toString() メソッドはすでに「真」または「偽」を返すように設計されており、小文字の代替品が必要な場合は、それも簡単です。
int five = 5;
Console.WriteLine((five == 5).ToString().ToLower());
低caseで必要としない場合は、実際にはTostringを完全に排除できます。
int five = 5;
Console.WriteLine(five == 5);
ASP.NETでは、宣言的(つまり、HTMLが進む場所):
<p>Is this five? <%= yourVariable == 5 ? "true" : "false"; %></p>
または、あるいは、背後のコード(つまり、C#コードとクラスがある場所)で:
someTextBox.Text = yourVariable == 5 ? "true" : "false";
Response.Write(five == 5 ? "True" : "False");
ただし、この例では、私は元気演算子をまったく使用しません。
Response.Write(five == 5);
安全にするために、3成分演算子は、あなたが見ていない場合にあなたを噛むことができる微妙な優先順位を持っているので、あなたの三元表現をParens()に置くべきです。
string answer = ( (five==5) ? ("true") : ("false") );
この例ではおそらく重要ではありませんが、三元が複雑な表現の一部である場合、優先順位ルールはコンパイラが意図したものとは異なる方法で式を解釈する可能性があります。
five==5?console.writeline('true'):console.writeline('false')
それはこのように動作します:
<if-expression> ? <code-when-if-expression-evaluates-true> : <code-when-if-expression-evaluates-false>
編集:
私がおそらくthkinkingだったこと:
<%=five==5?'true':'false'%>
さらに別のバリエーション:
string message = XmlConvert.ToString(5 == five);
Console.Write(message);
最も簡単なのはconsole.writeLine((5 == 5).toString())です。
@johnkのコメントから:
int five = 5;
string answer = five == 5 ? bool.TrueString : bool.FalseString;
文字列としてのブール値True/Falseを表します。このフィールドは読み取り専用です。https://msdn.microsoft.com/en-us/library/system.boolean.truestring(v=vs.110).aspx
evalを使用してC#で三元演算子ステートメントを使用します。 (ASPXページ)
<span><%# Eval("productname").ToString().Length<=0 ? "<label style=\"color: red;\">Notes<span></span></label>" : "<label style=\"color: blue;\">Notes<span></span></label>"%></span>