2

我知道装箱/拆箱会影响性能。根据 MSDN,拆箱所需的时间是作业的四倍。我们的代码中有很多行具有“冗余”转换。实际上并不需要它们,没有它们代码编译得很好。可能它不会损害性能,因为编译器认为不需要拆箱,但也许不需要!也许当我们明确地转换它们时,编译器将被迫进行不必要的拆箱。我想知道这种类型的“冗余铸造”是否也会像拆箱或 nop 一样影响性能?

4

1 回答 1

6

真正冗余的类型转换,如(int)0or(object)null被编译器省略。因为无论您是否使用强制转换表达式,生成的 IL 都完全相同,因此不会降低性能。这同样适用于显式转换,无论如何都要执行装箱转换:

object value = 0;
object value = (object)0; // exactly the same
于 2012-05-26T15:25:12.417 回答