拳击和拆箱

Pos*_*Guy 4 .net c# clr

可能重复:
什么是装箱和拆箱以及有什么权衡?

好的,我理解你装箱和拆箱时会发生什么的基本概念.

Box将值类型(堆栈对象)抛出到System.Object中并将其存储在堆Unbox中解压缩包含该值类型的堆上的对象并将其重新放回堆栈以便可以使用它.

这是我不明白的:

  1. 为什么需要这样做......特定的现实世界的例子

  2. 为什么泛型如此高效?他们说,因为Generics不需要拆箱或装箱,好吧..我不明白为什么......仿制药背后的原因是什么

  3. 为什么泛型比其他类型更好.让我们说其他收藏品?

总而言之,我在代码方面的现实应用中并不了解这一点,然后进一步了解它如何使泛型变得更好......为什么它在使用泛型时不必首先做任何这一点.

SLa*_*aks 5

  1. 只要你想要int一个object变量,就需要进行拳击.
  2. ints 的通用集合包含int[]而不是object[].
  3. 将一个非泛型集合int放入object[]后面需要你打包int.
    把一个int进入int[]后面的泛型集合不invlove任何拳击.

  • 你的第一点看起来像是回答了问题内容的问题.我认为OP想要知道*为什么*你需要在`object`中持有`int`.但是,对于其他点+1. (3认同)