gpt4 book ai didi

c# - 这个简单的条件运算符会在编译时优化吗? (。网)

转载 作者:太空狗 更新时间:2023-10-30 00:03:33 28 4
gpt4 key购买 nike

使用遗留代码,我发现我有很多这样的语句(超过 500 个)

bool isAEqualsB = (a == b) ? true : false;

这样重写有意义吗?

bool isAEqualsB = (a == b)

还是会在编译时优化?

提前致谢

桑蒂! =)

最佳答案

忽略性能 - 这所以不太可能成为瓶颈,在您证明它与适当的基准相关之前,您不应该考虑它。

不过,我绝对会关心可读性 - 从这个角度来看,我认为第二种方法要好得多,并且肯定会使用它。

编辑:在优化方面,C# 编译器似乎没有优化它:

  // First form
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: beq.s IL_0007
IL_0004: ldc.i4.0
IL_0005: br.s IL_0008
IL_0007: ldc.i4.1
IL_0008: stloc.0

// Second form
IL_0009: ldarg.0
IL_000a: ldarg.1
IL_000b: ceq
IL_000d: stloc.1

但是,重要的当然不是 IL,而是 JIT 编译器所做的事情。现在,即使是 IL 大小的差异也可能意味着内联与非内联之间的差异......

关于c# - 这个简单的条件运算符会在编译时优化吗? (。网),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986161/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com