inohilog

/var/log/inohiro.log

「^」演算子

恥ずかしいことにC#に「^」(XOR; 排他的論理和演算子があることを知りませんでした。

二項 ^ 演算子は、整数型と bool に対してあらかじめ定義されています。整数型の場合、^ ではオペランドのビットごとの排他的 OR が計算されます。bool オペランドの場合は、^ によりオペランド排他的論理和が計算されます。つまり、片方のオペランドが true の場合だけ結果が true になります。
^ 演算子 (C# リファレンス) - MSDN(ja-jp)

これを使えば、これまで

bool a = true;
if( a == true )
    a = false;
else
    a = true;

と書いていたところを、

bool a = true;
a ^= a;

と書くだけで良くなります。便利ー。比較回数も減るので処理も速くなりそうです。