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
}
}
我一直在分析源代码,但我无法理解
在本次评估中,这两者一起做什么 ^=
:
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
}
}