根据定义,我们知道
Boxing – Converts value-type TO reference type. Stored on heap.
UnBoxing – Converts reference type TO value-type. Stored on stack.但为什么我要将值类型转换为引用类型,或者将变量从堆栈推送到堆,或者从堆推送到堆栈。
这样做的优点或缺点是什么?
我们通过这样做得到了什么。这有什么用呢。
我们想要将值类型转换为引用类型还是将变量从堆栈推送到堆的情况。我们想用堆实现的东西,在那里我们不能用堆栈实现,或者在unBoxing中用堆栈实现,我们不能用堆实现。
我知道这个典型的例子
Int32 x = 10;
object o = x ; // Implicit boxing
Int32 y = 10;
object obj = (object) y; // Explicit Boxing
x = o; // Implicit UnBoxing请给我其他的。
发布于 2010-09-22 11:40:08
在C#中,您通常不知道装箱发生的时间,至少对于.NET 2.0泛型,装箱不是经常需要的(在.NET 1.x中,如果您想要一个整数的ArrayList,您必须首先对它们进行装箱,因为ArrayList只适用于object)。
但是,您将使用装箱的主要位置是只接受对象的函数调用。最明显的例子是Console.WriteLine (或string.Format),它将参数作为objects。例如:
int n = 1234;
Console.WriteLine("A number: {0}", n);整数n被装箱到object引用,以便传递给Console.WriteLine方法。
https://stackoverflow.com/questions/3766131
复制相似问题