0

ブール値の真をチェックするときの省略形はありますか?
例:

if (autoConnect) Connect();

我々はできる

return IsOpen() ? true : false;

しかし、私は得ることができません

autoConnect ? Connect();  

ランニング。これを行う方法はありますか?

4

5 に答える 5

3

短縮できる唯一のことは、条件演算子を削除することです。

return IsOpen() ? true : false;

そしてただ

return IsOpen();
于 2014-05-21T17:00:51.167 に答える
2

いいえ、autoConnect ? Connect();仕事をする方法はありません。

ブール値を返すだけで、三項演算子は必要ありません:

return IsOpen(); 

??または、テストする値が演算子を使用して null になる可能性がある場合は、次のサンプルの値を返します。

 return a ?? b;

aが null の場合は、 を返しbます。

于 2014-05-21T17:00:00.510 に答える
1

sirideが言うようif (autoConnect) Connect(); に、最短の方法です。ただし、これはコードを書いている間だけです。if (autoConnect) { Connect(); } コンパイラがコードをコンパイルするときはいつでも、 orを使用するのと同じになりif (autoConnect == true) { Connect(); }ます。

最もクリーンで読みやすいと思われるものを使用する必要があります。

于 2014-05-21T17:03:16.957 に答える