性能问题:if (isChecked) 与 if (isChecked == true)

Performance issue: if (isChecked) vs. if (isChecked == true)

CompiletimeRuntime 中使用 if (isChecked)if (isChecked == true) 有任何性能问题吗?

没有任何性能问题。为这两种情况生成的 IL 完全相同,当 IL 相同时,它的执行将是相同的。所以没有运行时差异。

bool x = true;
if (x == true) // or (x)
    Console.WriteLine("True");

IL_0001:  ldc.i4.1    
IL_0002:  stloc.0     // x
IL_0003:  ldloc.0     // x
IL_0004:  ldc.i4.0    
IL_0005:  ceq         
IL_0007:  stloc.1     // CS[=10=]00
IL_0008:  ldloc.1     // CS[=10=]00
IL_0009:  brtrue.s    IL_0016
IL_000B:  ldstr       "True"
IL_0010:  call        System.Console.WriteLine

安装LINQPad,下次自己试试;)

至于 compile-time,如评论中所述,生成的 abstract syntax tree 实际上会有所不同。这是 if(x)

的 AST 的相关部分

现在 if(x == true)

你可以看出区别。