【问题标题】:What is the difference between the two expressions? [duplicate]这两种表达方式有什么区别? [复制]
【发布时间】:2020-01-12 20:25:36
【问题描述】:

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

这是出于教育目的。

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

【问题讨论】:

标签: c# boolean-operations


【解决方案1】:

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

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

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

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

b = false;
Console.WriteLine(b);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多