这两种表达有什么区别?



我想知道这两种方法之间有什么区别,|=和简单的=尽管结果相同。我不知道有什么区别

这是出于教育目的。

public int ValueA { get; set; }
public int ValueB { get; set; }
bool someBool { get; private set; }
#region using_|=
someBool |= ValueA >= ValueB;
#endregion
#region using_basic_=
someBool = ValueA >= ValueB;
#endregion

我从未见过它,但它似乎像自递增+=运算符一样工作,除了布尔值。 所以|=的意思是,"将变量设置为原始值或右手值的逻辑结果"。

因此,在下面的代码中,b变为 true,因为它最初是 true,然后将该初始值与 false 进行比较。 真或假=真。

var b = true;
b |= false;
Console.WriteLine(b); // true

但在这里,b只是简单地设置为真。

b = false;
Console.WriteLine(b);

而且,正如我所怀疑的那样,还有一个&=运算符。

最新更新