【发布时间】:2011-06-06 08:11:49
【问题描述】:
是 2 和 3 装箱/拆箱示例吗?
1) 文档示例:
int i = 123;
object iBoxed = i;
i = (int) iBoxed;
2:装箱/拆箱也一样吗?
int i = 123;
object iBoxed = i;
i = Int32.Parse(iBoxed.ToString());
3:装箱/拆箱也一样吗?
int i = 123;
object iBoxed = i;
i = Convert.ToInt32(iBoxed);
我假设在所有示例中技术上都发生了相同的情况。
- 在堆栈上创建了一个值类型
- 在堆栈上创建了一个引用,该值被复制到堆中。
- 堆值被复制到引用。引用被删除。
所以我猜 2 和 3 是装箱/拆箱的例子?
【问题讨论】:
-
我认为是这样,因为您将 int 放入对象“盒子”中,然后将其从该盒子中取出。 box 和 unbox 背后的想法是将值类型更改为引用类型并返回