就像&和&&运算符一样,双运算符是一个“短路”运算符。
例如:
if(condition1 || condition2 || condition3)
如果condition1为true,则不检查条件2和3。
if(condition1 | condition2 | condition3)
这将检查条件2和3,即使1已经为真。由于您的条件可能是非常昂贵的功能,因此使用它们可以获得良好的性能提升。
有一个很大的警告,NullReferences或类似的问题。例如:
if(class != null && class.someVar < 20)
如果class为null,则if语句将在class != nullfalse 之后停止。如果你只使用&,它会尝试检查class.someVar你会得到一个很好的NullReferenceException。使用Or-Operator可能不是一个陷阱,因为你不太可能触发坏事,但这是要记住的事情。
但是,除非你的设计中每个条件都是要执行的函数,否则没有人会使用单个&或|运算符。听起来像是一种设计气味,但有时(很少)这是一种干净的做事方式。该&操作者“跑这3个功能,如果其中一个返回false,执行else块”,而|不会“只如果没有返回false运行else块” -可能是有用的,但正如所说,往往这是一个设计闻。
继续阅读与本文标签相同的文章
下一篇 :
为什么85%的大数据项目总是失败?
-
Robotframework-RED-指定测试报告存放的路径
2026-05-15栏目: 教程
-
株洲首个数据中心站投运
2026-05-15栏目: 教程
-
微软Edge新标签页迎来新布局:新闻区可替换为工作相关内容
2026-05-15栏目: 教程
-
取快递件竟有BUG!这是恶意为之?双十一得好好注意了
2026-05-15栏目: 教程
-
“缺芯少屏”现状或将改善,静电消除及洁净室工程需求增长
2026-05-15栏目: 教程
