Let's start on a more simple example, because properties do not always Support this syntax.
byte theValue= 0;
theValue|= 0x01;
means the same as:
theValue= theValue | 0x01;
The remaining question is what does Operator "|" means:
It means bit whise "or" of the two arguments.
Now the question is what means "bit wise or":
0 or 0 is 0
0 or 1 is 1
1 or 0 is 1
1 or 1 is 1
You can maybe see in the table above, as soon as one of the arguments is "1" the result is "1".
Now, I assume you know a byte is 8 bits, in case not ask Google for more.
Arg1 : 0000 0000
Arg2 : 0000 0001
Arg1 | Arg2: 0000 0001
and so on
To dive more deep into this ask Google:
Bitwise operations in C - Wikipedia, the free encyclopedia[
^]