C# ^= 做什么?

C# what does ^= do?

我一直在分析源代码,但我无法理解 在本次评估中,这两者一起做什么 ^=

array[i] ^= 5;  

^=操作数代表什么? 它是这样做的吗?:

array[i] = array[i] ^ 5;

谢谢..

这叫做compound assignment operator。复合赋值运算符的形式为

ω=

其中 ω 是二元运算符。复合作业

a ω= b

大致相当于

a = a ω b

除了 a 只计算一次。

所以,在你的情况下

array[i] ^= 5 

大致相当于

array[i] = array[i] ^ 5

但保证 array[i] 只计算一次:

using System.Console;

class MainClass
{
    static int[] A() { Write("A"); return new int[] { 23 }; }
    static int   B() { Write("B"); return 0; }
    static int   C() { Write("C"); return 42; }

    public static void Main()
    {
        WriteLine("Compound Assignment:");
        A()[B()] += C();
        // ABC

        WriteLine("\nExplicit Assignment:");
        A()[B()] = A()[B()] + C();
        // ABABC
    }
}