标题:[讨论]装箱和封箱的运用
取消只看楼主
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
 问题点数:0 回复次数:2 
[讨论]装箱和封箱的运用

大家都知道C#中的装箱和拆箱吧,装箱就是把数据项从堆栈自动复制到堆的行为;然后拆箱就是相反的过程吧。比如
int i = 42;
object o = i; //装箱

object o = 42;
int i = (int)o; //拆箱

这两种操作都会产生较大的开销,而且我感觉它们的用处不大。想请各位来讨论下它们。

搜索更多相关主题的帖子: 封箱 堆栈 装箱 int object 
2007-06-06 10:42
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
得分:0 

呵呵,看来确实用处不大。再加一个拆箱吧,嘻嘻
int i=10;
object obj=i;
if(obj is int)
{
Console.WriteLine("The value of i is boxing!");
}
i=20;
Console.WriteLine("int:i={0}",i);
Console.WriteLine("object:obj={0}",obj);

int j= (int)obj;
Console.WriteLine("the value {0} is unboxing",j);

楼下的再谈谈你们的意见吧,呵呵


你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-06-06 11:50
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
得分:0 
这个算吧。同意三楼的观点,这两种操作都会产生较大的开销。装箱有一定的用处,但滥用会严重影响程序的性能。如果要涉及装箱的,可以使用另一种技术来代替,就是泛型

你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-06-09 09:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-145297-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.363247 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved