C#复合赋值运算符^ =

时间:2011-04-21 13:30:46

标签: c#

这个算子^ =在c#中是什么意思?

5 个答案:

答案 0 :(得分:5)

它表示LHS表达式的值与RHS表达式的值按位异或,并将其分配回LHS表达式。

例如:

int x = 10;
int y = 3;

x ^= y; // x = 10 ^ 3, i.e. 9

LHS表达式仅评估一次,因此如果您有:

array[GetIndex()] ^= 10;

只会拨打GetIndex一次。但请不要这样做,“因为它很讨厌:)

另请参阅relevant MSDN page

您可能还会发现Eric Lippert's recent April Fool's Day blog post on compound assignment operators很有趣 - 和part one of the series, which was rather more serious, may prove enlightening

答案 1 :(得分:2)

这样:

x ^= y;

相当于:

x = x ^ y;

在单词中,将x设置为x的值,或者使用y。

答案 2 :(得分:1)

异或赋值运算符。

表格

的表达方式
 x ^= y

评估为

 x = x ^ y

除了x只评估一次。 ^运算符对积分操作数执行按位异或运算,对bool操作数执行逻辑异或运算。

http://msdn.microsoft.com/en-us/library/0zbsw2z6.aspx

答案 3 :(得分:1)

这是“独家或转让”运营商。详细信息位于http://msdn.microsoft.com/en-us/library/0zbsw2z6(v=VS.100).aspx

答案 4 :(得分:1)

XOR。 a ^= ba = a ^ b相同,其中a和b是某种整数类型。