?:演算子を使用するには、次のコードをどのように変換すればよいですか?使用方法?:operator
tbtotalamount.Text = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
if (tbtotalamount.Text.Length == 0)
{
tbtotalamount.Text = "0";
}
?:演算子を使用するには、次のコードをどのように変換すればよいですか?使用方法?:operator
tbtotalamount.Text = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
if (tbtotalamount.Text.Length == 0)
{
tbtotalamount.Text = "0";
}
引用されたコード技術的に、それは —例えば、3つのオペランドを持つオペレータだけ三項演算子ですが、conditional operator(とも呼ばれる「三項演算子」と呼ばれている? :
演算子を使用してから利益を得ないだろう)。
通常、条件付き演算子は、変数を持ち、条件に基づいて2つの値の1つを割り当てる場合に便利です。だから、このフォームのコード:
if (someCondition) {
a = "one value";
}
else {
a = "a different value";
}
は、あなたの場合は
a = someCondition ? "one value" : "a different value";
を書き換えることができます、しかし、あなたはstring.Format
をやった後までtbtotalamount.Text
が空白であることを知らないので、あなた」 if
でそれを残す方が良いです。
はい。方法は次のとおりです:
string test = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
tbttotalamount.Text = test.length == 0 ? "0" : test;
私はよく分からないのですか? (3値)演算子も非常に長い時間です。私はそれがとても便利だと思います。
評価式の左に評価式があります。評価後はブール値にする必要があります。右は演算子が返す値です:trueの場合、値は:
の左に戻ります。 falseの場合、右側の値。式全体が何かを返すことに注意してください。そして、コンパイラはあなたに何かをさせる必要があります。戻り値の型がvoid
の関数を呼び出すif-elseステートメントを置換するために、3項演算を使用することはできません。私が言うことを意味何
は、(私のような)前にそれを使ったことがない多くの人々は、これはそれがないである場合、他の代替、純粋で考えているようだということです。
http://msdn.microsoft.com/en-us/library/ty67wk28.aspx – zerkms