为什么这个按位OR在一个可空的int上返回null ?

本文关键字:int 返回 null 一个 OR 为什么 | 更新日期: 2023-09-27 18:17:59

我基本上有以下内容:

    int? myVal = null;
    myVal |= 1;
    bool stillNull = myVal == null; //returns true

为什么会这样?我对按位操作符/操作数行为的理解不是很强,在这种情况下,我找不到它不被视为简单赋值的理由。

为什么这个按位OR在一个可空的int上返回null ?

来自文档:

预定义的一元和二元操作符或任何重载操作符值类型T所支持的对应的可空值类型T?这些操作符,也称为提升运算符如果一个或两个操作数为null,则产生null;否则,则使用其操作数中包含的值计算结果。