8

我基本上有以下几点:

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

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

4

1 回答 1

11

文档中

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

于 2013-06-11T18:01:26.410 回答