web-dev-qa-db-ja.com

C#でこのステートメントに三項演算子を使用する方法

int five = 5;
  • 変数5が5に等しい場合、trueと記述します
  • 変数5が5に等しくない場合、falseと記述します

C#を使用してASP.NETでこのステートメントを作成するにはどうすればよいですか?

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

これを使用してASP.NETに値を書き出す必要があるようです。answer文字列は目的の値を保持しますので、自由に使用してください。

27
roman m

ほぼすべての言語の三項演算子は、インラインifステートメントとして機能します。

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

(厳密に内側の親を必要とすべきではありませんが、わかりやすくするためにそれらを含めるのが好きです。)

ブール値がtrueと評価された場合、式全体は?:の間の値に等しくなります。ブール値がfalseと評価された場合、式は:の後の値と等しくなります。

演算子の途中にコード行を含めることはできないと思います。これらは、条件が評価されると、演算子「フレーズ」全体を置き換える式であると単純に想定されています。

私はJavaの人で、C#を本当に知りません。おそらく違うでしょう。しかし、おそらくそうではありません。

9
James Cronen

あなたはそれを本当に単純に保つことができます。 5と5を比較するとブール値になるため、次のことも可能です。

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

bool型のToString()メソッドは、「True」または「False」を返すようにすでに設計されています。必要です、それも簡単です:

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

小文字にする必要がない場合は、実際にはToStringを完全に削除することもできます。

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

ASP.NETでは、宣言型(つまり、HTMLの行き先):

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

または、代わりに、コードビハインド(つまり、C#コードとクラスがある場所)で:

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

安全のために、三項式を親()に入れる必要があります。これは、三項演算子?:が微妙な優先順位を持っているため、見ていなければ噛み付く可能性があるためです。

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

この例ではおそらく重要ではありませんが、3値が複雑な式の一部である場合、優先順位規則により、コンパイラーが意図したものとは異なる方法で式を解釈する可能性があります。

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

ただし、この例では、三項演算子はまったく使用しません。

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

さらに別のバリエーション:

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

最も単純なのはConsole.WriteLine((five == 5).ToString());です。

0
Mahesh

@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

0
5377037

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

それはこのように動作します:

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

編集:

私がおそらく考えていたもの:

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

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>
0
RPS