如何解决为什么C#中没有|| =或&& =运算符?
| 对于所有逻辑运算符,Shift运算符,加法运算符和所有乘法运算符,我们都有等效的赋值运算符。 为什么逻辑运算符被排除在外? 是否有困难的良好技术原因?解决方法
为什么逻辑运算符被排除在外?是否有困难的良好技术原因?
他们没有。您可以根据需要执行
&=
或|=
或^=
。
bool b1 = false;
bool b2 = true;
b1 |= b2; // means b1 = b1 | b2
||
和&&
运算符没有复合形式,因为坦率地说,它们有点傻。您想在什么情况下说
b1 ||= b2;
b1 &&= b2;
这样,如果左侧不变,则不会评估右侧?似乎只有少数人会实际使用此功能,那么为什么要使用它呢?
有关复合运算符的更多信息,请参见我的严肃文章:
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
, 也许只是使用
isAdmin = isAdmin || IsGroupAdmin()
我猜这部分是因为a ||= b
有点令人困惑,因为可能有两种版本的实现:a = a || b
或a = b || a
。它们的行为有所不同,因为有时不评估表达式的右侧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。