首页 文章资讯内容详情

C#中 | 和 || 运算符的区别

2026-06-04 1 花语

||被称为 逻辑或 运算符,|被称为按位逻辑或运算符,但它们之间的基本区别在于它们的执行方式。||和|的语法与下面的相同-

bool_exp1||bool_exp2

bool_exp1|bool_exp2

现在,1和2的语法看起来很相似,但它们的执行方式完全不同。

在第一条语句中,将执行第一条bool_exp1,然后此表达式的结果决定另一条语句的执行。

如果为true,则OR为true,因此执行另一条语句没有任何意义。

仅当bool_exp1执行返回false时,才会执行bool_exp2语句。

它也被称为短路运算符,因为它根据第一个表达式的结果来短路(语句)。

现在的情况下|情况有所不同。编译器将执行这两个语句,换句话说,无论一个语句的结果如何,都将执行这两个语句。

这是一种低效的处理方式,因为如果一个语句为true,则执行另一条语句是没有意义的,因为OR的结果仅对评估为“false”的结果有效,并且当两个语句均为false时也是可能的。

按位逻辑或

示例

using System; namespace DemoApplication{ public class Program{ static void Main(string[] args){ if(Condition1() || Condition2()){ Console.WriteLine("执行逻辑或If条件"); } Console.ReadLine(); } static bool Condition1(){ Console.WriteLine("条件1已执行"); return true; } static bool Condition2(){ Console.WriteLine("条件2已执行"); return true; } } }

输出结果

条件1已执行 执行逻辑或If条件

按位或

示例

using System; namespace DemoApplication{ public class Program{ static void Main(string[] args){ if(Condition1() | Condition2()){ Console.WriteLine("逻辑或If条件已执行"); } Console.ReadLine(); } static bool Condition1(){ Console.WriteLine("条件1已执行"); return true; } static bool Condition2(){ Console.WriteLine("条件2已执行"); return true; } } }

输出结果

条件1已执行 条件2已执行 逻辑或If条件已执行