为什么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