我想知道这两种方法之间有什么区别,|=
和简单的=
尽管结果相同。我不知道有什么区别
这是出于教育目的。
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);
而且,正如我所怀疑的那样,还有一个&=
运算符。