OR 表达式中的 | 和 || 运算符有何不同?
何时使用逻辑运算符时,我们经常遇到 || (双管道)运算符对于 OR 表达式。但是,还有一个管道运算符 |。了解这些用法之间的差异至关重要。
短路行为
如 && 和 && & 运算符,|| 运算符是“短路”运算符。在 OR 表达式中,这意味着如果第一个条件计算为 true,则不计算后续条件。
例如:
if(condition1 || condition2 || condition3)
如果条件 1 为 true,则条件 2 和条件 3 将不会计算被检查。
相比之下,| 运算符不会表现出这种短路
if(condition1 | condition2 | condition3)
使用此运算符,即使条件 1 为 true,也会检查条件 2 和 3。当条件是昂贵的函数时,这可能是有利的,因为它可以提供性能提升。
空引用和异常
但是,使用时需要考虑一个警告| 运算符。与可以防止 NullReferenceException 的 || 运算符不同,| 运算符不提供此保护。
例如:
if(class != null & & class.someVar < 20)
使用 || 运算符,如果 class 为 null,则该语句在评估第一个 健康)状况。另一方面,使用 | 运算符,即使 class 为 null,class.someVar 也会被计算,可能会触发 NullReferenceException。
按位运算
除了 OR 表达式之外,| 和& 运算符还有另一种用途:按位运算。这些操作涉及操作二进制表示中的位,从而提供对特定位的更精确的控制。
以上是C# OR 表达式中的'|”和'||”运算符有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!