| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1095 人关注过本帖
标题:[讨论]装箱和封箱的运用
只看楼主 加入收藏
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
收藏
 问题点数:0 回复次数:7 
[讨论]装箱和封箱的运用

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

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

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

搜索更多相关主题的帖子: 封箱 堆栈 装箱 int object 
2007-06-06 10:42
飙马
Rank: 5Rank: 5
来 自:马里亚纳
等 级:贵宾
威 望:15
帖 子:779
专家分:280
注 册:2007-3-28
收藏
得分:0 

的确用得比较少!

贴个例子:
using System;

namespace Boxing装箱
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Test
{

[STAThread]
public static void Main()
{
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);


}
}
}


IT精英如同彩票:平凡的人像5块也中不到一样普遍,努力一点你中了5元保了个本。奖金越高,机率也就越小,付出的也越多,盖茨如同500万一样稀有。虽然每天忙碌而平凡,但我努力成为精英,做梦中了500万。
2007-06-06 10:52
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
huanglong
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-6-8
收藏
得分:0 
装箱和拆箱一般是用在强制转换类型时使用!!它很占资源能不用,最好不用!!
2007-06-09 00:24
log
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-6-9
收藏
得分:0 
Convert.
.tostring()
都算拆箱吗
2007-06-09 09:24
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
收藏
得分:0 
这个算吧。同意三楼的观点,这两种操作都会产生较大的开销。装箱有一定的用处,但滥用会严重影响程序的性能。如果要涉及装箱的,可以使用另一种技术来代替,就是泛型

你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-06-09 09:46
dreamsnake
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-12
收藏
得分:0 
我觉得,装箱拆箱在面向对象的观念里,无非是类型的向上转换和向下转换而已.虽然这里产生了一个值类型与引用类型的问题.但本质上是无差别的.所以,对待的方式与实用价值也是相类似的.

呵呵,感觉这么说也没完全表达我的感受吧.但重点应该是在这里.

期待楼下的.
2007-06-13 13:52
飙马
Rank: 5Rank: 5
来 自:马里亚纳
等 级:贵宾
威 望:15
帖 子:779
专家分:280
注 册:2007-3-28
收藏
得分:0 
本人感觉也是封箱跟装装箱,重在理念,而不在使用!

IT精英如同彩票:平凡的人像5块也中不到一样普遍,努力一点你中了5元保了个本。奖金越高,机率也就越小,付出的也越多,盖茨如同500万一样稀有。虽然每天忙碌而平凡,但我努力成为精英,做梦中了500万。
2007-06-13 13:59
快速回复:[讨论]装箱和封箱的运用
数据加载中...
 
   



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

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