This means the bitwise XOR value of the LHS expression with the value of the RHS expression and assigns it back to the LHS expression.
So for example:
int x = 10;
int y = 3;
x ^= y;
An LHS expression is evaluated only once, so if you have:
array[GetIndex()] ^= 10;
which will only call once GetIndex. But please do not do this because it is disgusting :)
See also the corresponding MSDN page .
, , - , , .