【发布时间】:2011-04-21 13:30:45
【问题描述】:
这个操作符 ^= 在 c# 中是什么意思?
【问题讨论】:
标签: c#
这个操作符 ^= 在 c# 中是什么意思?
【问题讨论】:
标签: c#
这意味着将 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 很有趣。
【讨论】:
这个:
x ^= y;
等价于:
x = x ^ y;
换句话说,将 x 设置为 x 与 y 异或的值。
【讨论】:
异或赋值运算符。
形式的表达
x ^= y
被评估为
x = x ^ y
除了 x 只计算一次。 ^ 运算符对整数操作数执行按位异或运算,对布尔操作数执行逻辑异或运算。
【讨论】:
这是“排他或赋值”运算符。详情在http://msdn.microsoft.com/en-us/library/0zbsw2z6(v=VS.100).aspx
【讨论】:
异或。 a ^= b 与 a = a ^ b 相同,其中 a 和 b 是某种整数类型。
【讨论】: