An expression of the form
x ^= y
is evaluated as
x = x ^ y
except that x
is only evaluated once. The ^ operator performs a bitwise exclusive-OR operation on integral operands and logical exclusive-OR on bool operands.
The |= operator cannot be overloaded directly, but user-defined types can overload the | operator (see operator).
using System; class Test { public static void Main() { int a = 0x0c; a ^= 0x06; Console.WriteLine("0x{0:x8}", a); bool b = true; b ^= false; Console.WriteLine(b); } }
0x0000000a True
C# Operators | CLR 7.13 Assignment operators