首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们在哪里使用拳击,或者拳击有什么用?

我们在哪里使用拳击,或者拳击有什么用?
EN

Stack Overflow用户
提问于 2010-09-22 11:34:17
回答 1查看 289关注 0票数 0

根据定义,我们知道

代码语言:javascript
复制
Boxing – Converts value-type TO reference type. Stored on heap.
UnBoxing – Converts reference type TO value-type. Stored on stack.

但为什么我要将值类型转换为引用类型,或者将变量从堆栈推送到堆,或者从堆推送到堆栈。

这样做的优点或缺点是什么?

我们通过这样做得到了什么。这有什么用呢。

我们想要将值类型转换为引用类型还是将变量从堆栈推送到堆的情况。我们想用堆实现的东西,在那里我们不能用堆栈实现,或者在unBoxing中用堆栈实现,我们不能用堆实现。

我知道这个典型的例子

代码语言:javascript
复制
Int32 x = 10; 
object o = x ;  // Implicit boxing

Int32 y = 10; 
object obj = (object) y; // Explicit Boxing

x = o; // Implicit UnBoxing

请给我其他的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-22 11:40:08

在C#中,您通常不知道装箱发生的时间,至少对于.NET 2.0泛型,装箱不是经常需要的(在.NET 1.x中,如果您想要一个整数的ArrayList,您必须首先对它们进行装箱,因为ArrayList只适用于object)。

但是,您将使用装箱的主要位置是只接受对象的函数调用。最明显的例子是Console.WriteLine (或string.Format),它将参数作为objects。例如:

代码语言:javascript
复制
int n = 1234;
Console.WriteLine("A number: {0}", n);

整数n被装箱到object引用,以便传递给Console.WriteLine方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3766131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档