我知道装箱/拆箱会影响性能。根据 MSDN,unboxing can take four times as long as an assignment 。我们的代码中有许多行具有“冗余”强制转换。实际上并不需要它们,并且没有它们代码也可以正常编译。也许它不会损害性能,因为编译器认为不需要拆箱,但也许不需要!也许当我们显式地转换它们时,编译器将被迫进行不必要的拆箱。我想知道这种类型的“冗余转换”是否也会像拆箱或 nop 一样影响性能?
最佳答案
像 (int)0
或 (object)null
这样的真正冗余的转换会被编译器忽略。由于无论是否使用强制转换表达式,生成的 IL 都完全相同,因此不会造成性能损失。对于显式转换也是如此,无论如何都会执行装箱转换:
object value = 0;
object value = (object)0; // exactly the same
关于c# - 多余的强制转换会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10767443/