C#复合赋值运算符^ =

Jos*_*cum 5 c#

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

Jon*_*eet 5

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

例如:

int x = 10;
int y = 3;

x ^= y; // x = 10 ^ 3, i.e. 9
Run Code Online (Sandbox Code Playgroud)

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

array[GetIndex()] ^= 10;
Run Code Online (Sandbox Code Playgroud)

只会打GetIndex一次电话.但请不要这样做,'因为它是讨厌的:)

另请参阅相关的MSDN页面.

您可能还会发现Eric Lippert最近发布的关于复合赋值操作员的愚人节博客文章很有趣 - 该系列的第一部分更为严肃,可能会证明具有启发性.

  • 这个问题对你来说有点容易吗?:) (2认同)