隐藏特性:C#的“|”与“&”运算符(没有短路特性的布尔运算符)
2012-07-16 20:47
295 查看
在C#语言中,
“||”与“&&”布尔运算符具有短路特性,相当于VB的OrElse和AndAlso运算符
而“|”与“&”运算符不仅能用于数值运算,也能用于布尔运算,作为布尔运算符两者都没有短路特性,相当于VB的Or和And运算符
注:其实其他C系列语言(C/C++以及Java)也具有同样的语言特性。
“||”与“&&”布尔运算符具有短路特性,相当于VB的OrElse和AndAlso运算符
而“|”与“&”运算符不仅能用于数值运算,也能用于布尔运算,作为布尔运算符两者都没有短路特性,相当于VB的Or和And运算符
注:其实其他C系列语言(C/C++以及Java)也具有同样的语言特性。
using System; namespace ConsoleApplication1 { class Program { static bool f() { Console.WriteLine("f()"); return true; } static void Main(string[] args) { Console.WriteLine("b1"); bool b1 = true | f(); b1 |= f(); Console.WriteLine("b2"); bool b2 = true || f(); b2 = b2 || f(); Console.WriteLine("b3"); bool b3 = false & f(); b3 &= f(); Console.WriteLine("b4"); bool b4 = false && f(); b4 = b4 && f(); } } } /* b1 f() f() b2 b3 f() f() b4 */
相关文章推荐
- AndAlso & OrElse Operators in C#短路运算符
- 温故知新ASP.NET 2.0(C#)(4) - Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)
- C# 特性学习(二)
- C#中一个不常用的特殊运算符——"??"
- js中与、或运算符 ||、&& 短路介绍
- PHP基础之运算符(五)【短路特性】
- js短路,||、&&、!!短路运算符的使用
- C# 4.0新特性-"协变"与"逆变"以及背后的编程思想
- "SQL1218N 在缓冲池 4096 中当前没有任何页面可用"问题的解决(由于隐藏的buffer引发的血案)
- C# 新委托使用方法 Lambda表达式,运算符 =>
- 二进制“<<”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)
- => 运算符(C# 参考)
- 利用JScript中运算符"||"和"&&"的特殊特性实现代码精简第1/2页
- 0xf8 &amp; 0x3f); C#的运算符问题 Console.WriteLine("0x{0:x}"
- 为什么JVM上没有C#语言?浅谈Type Erasure特性
- 用regasm注册C#的dll时报"没有注册类型"的解决方法
- 利用JScript中运算符"||"和"&&"的特殊特性实现代码精简第1/2页
- C# 2.0&3.0新特性总结
- C# 弹框,提示错误:命名空间 'MessageBox' 中没有型别或命名空间名称‘Show’(您是否遗漏了组建参考?)
- 为什么JVM上没有C#语言?浅谈Type Erasure特性