33

問題はブール値を否定することではなく、それを行うための最もエレガントで効率的で最も優れた方法についてであることに注意してください。

トグルボタンをクリックすると、次のコードを実行して新しい状態をプライベートに保存しますbool

_isIt = !_isIt;

確かに機能します。確かに読みやすいです。しかしi = i + 1、それでも、私たちは常にを書きi++ます。を切り替えるためのより良い方法はありますboolか?

4

5 に答える 5

27

実際、ブール値を切り替える別のオプションがあります。これは機能します。

_isIt ^= true;

しかし、これはあなたがした方法よりも良くはありません...

于 2012-10-05T17:34:03.577 に答える
20

いいえ、それが最適な方法です。おめでとう!

他の方法があったとしても(あなたがコメントしたように- _isIt!!、とにかく眉をたくさん上げるので、それを使用しない方がよいと思います.

于 2012-10-05T17:32:12.893 に答える
3

いいえ、それが a を切り替える慣用的な C# の方法だと思いますbool(つまり、反対の値を割り当てます)。

私の意見: コードはそのままにしておいてください。コードの意図を明確に伝えます。これは、将来の読者にとって最も重要なことです。

の方法に興味がある場合は、XOR を使用できますが、読みにくいと主張します。

_isIt ^= true;
于 2012-10-05T17:30:54.760 に答える
0

いいえ、ありません。この回答に他に何を追加すればよいかわかりません:)

于 2012-10-05T17:31:17.433 に答える