我基本上有以下内容:
int? myVal = null;
myVal |= 1;
bool stillNull = myVal == null; //returns true
为什么这样做?我对按位运算符/操作数行为的理解并不是非常强大,我找不到在这种情况下它不会被视为简单赋值的原因。
答案 0 :(得分:8)
来自MSDN:
预定义的一元和二元运算符以及值类型存在的任何用户定义的运算符也可以由可空类型使用。 如果操作数为空,则这些运算符产生空值;否则,运算符使用包含的值来计算结果。