C# if语句编码约定:condition==true与condition!=false哪种写法更优?
C# 两种if布尔判断写法的相关问题解答
编码约定相关
- 首先微软官方C#编码规范、.NET社区通用约定里,这两种写法都不属于推荐写法:本身
condition就是布尔类型的值,直接写if (condition)即可,多余的== true或者!= false属于无意义的冗余代码,反而会降低可读性。 - 如果必须在题目的两种写法中二选一,
if (condition == true)的接受度比if (condition != false)高很多,后者属于非常少见的写法,很容易让其他开发者困惑。 - 不存在强制要求二选一的行业通用约定,最终选择以团队内部统一的编码规范为准:如果团队明确要求要写全判断条件,就按团队规则走,否则优先用无冗余的
if (condition)写法。
运行效率相关
- 两种写法的运行效率没有任何差异。
- 背后的原因是:C#编译器(包括.NET Framework时代的csc编译器、.NET Core及之后的Roslyn编译器)都会在编译阶段消除这种无意义的布尔冗余判断,两种写法生成的IL(中间语言)完全一致,后续JIT编译生成的机器码也没有任何区别,运行时的执行逻辑完全相同,不存在性能高低的区别。
额外建议:日常开发中直接写
if (condition)或者if (!condition)是行业通用的最优选择,既没有冗余,可读性也最高。
内容的提问来源于stack exchange,提问作者Ronakße
相关产品推荐
相关产品推荐

