Boh*_*ohn 2 c# performance boxing
我知道装箱/拆箱会影响性能.根据MSDN,拆箱可能需要四倍的时间.我们的代码中有许多行具有"冗余"强制转换.实际上并不需要它们,如果没有它们,代码就可以很好地编译.可能它不会损害性能,因为编译器发现不需要进行拆箱,但也许不行!也许当我们强制转换时,编译器将被迫进行不必要的拆箱.我想知道那种类型的"冗余铸造"是否也会影响性能,就像拆箱或者nop一样?
真正多余的强制转换类似于编译器(int)0或被(object)null编译器删除.因为无论是否使用强制转换表达式,生成的IL都完全相同,因此不存在性能损失.同样适用于无论如何都会执行拳击转换的显式转换:
object value = 0;
object value = (object)0; // exactly the same
Run Code Online (Sandbox Code Playgroud)