これはあなたには奇妙に聞こえるかもしれませんが、私は次のように書くのが面倒です
if (threadAlive)
{
threadAlive = false;
}
else
{
threadAlive = true;
}
bool値をその値の反対に変更するint ++やint--のようなものはありませんか?
これを行うだけです:
threadAlive = !threadAlive;
はいあります!
threadAlive ^= true;
(これはC#ジョークです。最も一般的なケースでは、C/C++/Javascriptでは機能しません(一部の条件に応じてC/C++/Javascriptで機能します)could) ^
はxor演算子です)
論理否定演算子!
は、オペランドを否定する単項演算子です。 bool
に対して定義され、そのオペランドがtrue
の場合に限りfalse
を返し、オペランドがfalse
の場合にのみtrue
を返します。 _:
threadAlive = !threadAlive;
使用 !
演算子:
bool b = true;
b = !b; // b is now false
非常にシンプル:
threadAlive = ! threadAlive;
それがあなたが探しているものである場合、基本型に対して オーバーロード演算子 はできません。
他の皆がすでに述べたように、これは間違いなくあなたの最良の選択肢です。
threadAlive = !threadAlive;
ただし、私は決してお勧めしませんが、独自のbool
タイプを作成し、++
または値を反転させたい演算子。
次のコードは、とにかくneverを使用する必要があるものです。
public class MyBool
{
bool Value;
public MyBool(bool value)
{
this.Value = value;
}
public static MyBool operator ++(MyBool myBoolean)
{
myBoolean.Value = !myBoolean.Value;
return myBoolean;
}
}
独自の拡張メソッドを作成することもできますが、それはより良い方法ではありません。