0

三項演算子を使用して次のコードを最小化する方法

if (toolButtonState.New == 1)
    ts.Items["tsbNew"].Enabled = true;
else
    ts.Items["tsbNew"].Enabled = false;

実装を提供してください

4

2 に答える 2

6

三項演算子は必要ありません。次のように単純化できます。

ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1);

技術的には、このような三項演算子を使用できますが、次の理由はありません。

ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1) ? true : false;

通常、次のように、 ?andの後の式が単にandに:評価されない場合は、三項式の方が便利です。truefalse

someControl.ForeColor = (toolButtonState.New == 1) ? Color.Red : Color.Black;

式が単純なワンライナー以上のものである場合は、昔ながらのif/elseステートメントと中かっこをそのまま使用すると、コードが読みやすくなる可能性があることに注意してください。

于 2013-03-24T04:47:02.307 に答える
1

項演算子の形式は次のとおりです。

(condition) ? (if true) : (if false)

したがって、コードの三項は次のようになります。

ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1) ? true : false;

ただし、真の場合の値はtrueであり、偽の場合の値は であることに気付くでしょうfalse.Enabled三項ステートメントを削除するだけで、条件の結果に設定することで同じことを実行できます。

ts.Items["tsbNew"].Enabled = (toolButtonState.New == 1);
于 2013-03-24T04:51:14.420 に答える