c#中的布尔赋值操作符

本文关键字:赋值操作符 布尔 | 更新日期: 2023-09-27 18:05:30

这个^=布尔赋值运算符在c#中是如何工作的,^运算符的数学名称是什么?它与&|算子有什么不同?

c#中的布尔赋值操作符

Docs:

Binary ^操作符是为整型和bool型预定义的。为整型时,^计算其操作数的位异或运算。对于bool操作数,^计算其逻辑异或操作数;也就是说,结果为真当且仅当其操作数为真。

在数学中,这被称为互斥

开发者用例:

你可能有一个特定的UI,其中需要两个输入字段在一起(但都是空的是有效的)。在这种情况下,您可以使用异或操作符来检查一个字段是否已填充而另一个字段未填充。

^&|的区别:

  • 真实,false => false;
  • true | false => true;
  • true ^ false => true;

  • true ^ true => false而true & true => true和true | true => true

规则:

  • &:两者都为真才能产生真值。
  • |:至少有一个为真值才能产生真值。
  • ^:只有一个操作数为真才能产生真值。

使用b1 ^= b2;相当于b1 = b1 ^ b2;,因此上述规则适用。

^表示一个操作数必须为真或假,如果同时为真或假则返回假