为什么C#中没有|| =或者&& =运算符?

对于所有逻辑运算符,Shift运算符,加法运算符和所有乘法运算符,我们都有等价的赋值运算符。

为什么逻辑运算符被排除在外? 难道有一个很好的技术原因吗?

为什么逻辑运算符被排除在外? 难道有一个很好的技术原因吗?

他们没有 。 如果你愿意,你可以用&=或者|=或者^=

 bool b1 = false; bool b2 = true; b1 |= b2; // means b1 = b1 | b2 

|| 而且&&经营者没有复合forms,坦白地说,他们有点傻。 你想在什么情况下说

 b1 ||= b2; b1 &&= b2; 

如果左侧没有改变,右侧不被评估? 似乎只有less数人会真的使用这个function,那为什么要把它放进去呢?

有关复合操作符的更多信息,请参阅我的严重文章:

http://blogs.msdn.com/b/ericlippert/archive/2011/03/29/compound-assignment-part-one.aspx

和后续的愚人节文章在这里:

http://blogs.msdn.com/b/ericlippert/archive/2011/04/01/compound-assignment-part-two.aspx