为什么语句z ^ = true会在前一个产生真值时产生错误?
bool v = true;
bool z = false;
z ^= v;
Console.WriteLine(z);
z ^= true;
Console.WriteLine(z);
OUTPUT
======
True
False
Run Code Online (Sandbox Code Playgroud)
Mic*_*ael 15
因为:
false ^ true == true
true ^ true == false
Run Code Online (Sandbox Code Playgroud)
见http://en.wikipedia.org/wiki/Xor
^意味着XOR,如果一个但不是两个边都是真的,则XOR被定义为真,并且在每个其他情况下被定义为假.
所以
z ^ = v表示z = false ^ true,表示true
z ^ = true表示z = true ^ true,为false
请注意,^ =更改第一个和第二个语句中变量的值