2

ボクシング/アンボクシングがパフォーマンスに影響することは知っています。MSDNによると、開梱には割り当ての4倍の時間がかかる可能性があります。コードには、「冗長な」キャストを持つ行がたくさんあります。それらは実際には必要ではなく、コードはそれらなしで正常にコンパイルされます。コンパイラーは開封を行う必要がないと判断するため、おそらくパフォーマンスを損なうことはありませんが、そうではないかもしれません。たぶん、それらを明示的にキャストすると、コンパイラーは不必要なアンボックス化を強制されるでしょう。そのタイプの「冗長キャスティング」も、開開やノープのようにパフォーマンスに影響を与えるのではないかと思います。

4

1 に答える 1

6

(int)0コンパイラのような、または(object)nullコンパイラによって排除される、真に冗長なキャスト。キャスト式を使用するかどうかに関係なく、生成されるILはまったく同じであるため、パフォーマンスの低下はありません。とにかくボクシングの変換が実行される明示的なキャストについても同じことが言えます。

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