对于所有逻辑运算符、移位运算符、加法运算符和所有乘法运算符,我们都有等价的赋值运算符。
为什么逻辑运算符被遗漏了?为什么它很难,有没有很好的技术原因?
发布于 2011-06-14 23:43:31
为什么省略了逻辑运算符?为什么它很难,有没有很好的技术原因?
他们没有。如果您愿意,您可以使用&=、|=或^=。
bool b1 = false;
bool b2 = true;
b1 |= b2; // means b1 = b1 | b2||和&&运算符没有复合形式,因为老实说,它们有点傻。在什么情况下你想说
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
发布于 2019-08-09 10:16:16
也许只需要使用
isAdmin = isAdmin || IsGroupAdmin()我猜部分原因是因为a ||= b有点混乱,因为可能有两个版本的实现:a = a || b或a = b || a。它们的行为也不同,因为有时不会计算表达式的右侧。
https://stackoverflow.com/questions/6346001
复制相似问题