对于所有逻辑运算符、移位运算符、加法运算符和所有乘法运算符,我们都有等效的赋值运算符。
为什么逻辑运算符被遗漏了?是否有很好的技术原因说明它很难?
对于所有逻辑运算符、移位运算符、加法运算符和所有乘法运算符,我们都有等效的赋值运算符。
为什么逻辑运算符被遗漏了?是否有很好的技术原因说明它很难?
为什么逻辑运算符被遗漏了?是否有很好的技术原因说明它很难?
他们没有。如果你愿意,你可以做&=
或做。|=
^=
bool b1 = false;
bool b2 = true;
b1 |= b2; // means b1 = b1 | b2
||
and&&
运算符没有复合形式,因为坦率地说,它们有点傻。在什么情况下你想说
b1 ||= b2;
b1 &&= b2;
这样如果左侧没有变化,则不评估右侧?似乎只有少数人会真正使用此功能,那么为什么要放入它呢?
有关复合运算符的更多信息,请参阅我的严肃文章:
https ://docs.microsoft.com/en-us/archive/blogs/ericlippert/compound-assignment-part-one
以及此处的后续愚人节文章:
https ://docs.microsoft.com/en-us/archive/blogs/ericlippert/compound-assignment-part-two
也许只是使用
isAdmin = isAdmin || IsGroupAdmin()
我想这部分是因为a ||= b
有点令人困惑,因为可能有两个版本的实现:a = a || b
, 或a = b || a
. 而且它们的行为不同,因为有时不计算表达式的右侧。