关于减少隐式装箱的理解。。??

littlecc2009 2010-03-07 11:24:04
请问,有这样一句:
int i=100;
object o=i;
hashtable ht=new hashtable();
ht.Add(“one”,o);

书上说这样“hashtable的add方法接受object类型参数,因此通过显式类型转换减少隐式装箱”。
我想问问,反正都要装箱,为什么要显式转换代替隐式装箱呢??
...全文
156 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlecc2009 2010-03-19
  • 打赏
  • 举报
回复
ddddddddddddddddddddddddddddd
littlecc2009 2010-03-09
  • 打赏
  • 举报
回复
...!!!!!!............
littlecc2009 2010-03-07
  • 打赏
  • 举报
回复
引用 1 楼 jxyxhz 的回复:
稍微查了下msdn,解释不了

啊。。。。。。。。。。。。。。。。。。
小_虎 2010-03-07
  • 打赏
  • 举报
回复
稍微查了下msdn,解释不了
littlecc2009 2010-03-07
  • 打赏
  • 举报
回复
引用 22 楼 ckl881003 的回复:
引用 20 楼 luzhou 的回复:显示类型转换相比隐式类型转换,一是效率高,二是更加安全。
请问显示类型转换那里体现出效率高和安全了?

同问。。。
ckl881003 2010-03-07
  • 打赏
  • 举报
回复
引用 20 楼 luzhou 的回复:
显示类型转换相比隐式类型转换,一是效率高,二是更加安全。

请问显示类型转换那里体现出效率高和安全了?
littlecc2009 2010-03-07
  • 打赏
  • 举报
回复
引用 20 楼 luzhou 的回复:
显示类型转换相比隐式类型转换,一是效率高,二是更加安全。

嗯~~可以解析一下怎么安全吗??
LuZhou 2010-03-07
  • 打赏
  • 举报
回复
显示类型转换相比隐式类型转换,一是效率高,二是更加安全。
littlecc2009 2010-03-07
  • 打赏
  • 举报
回复
引用 18 楼 sp1234 的回复:
如果说  object o=i; 这个类型转换,它最多只是“隐式类型转换”。

说它是类型转换,不如说它是装箱更具体一些。

嗯嗯~我觉得作者的意思可能是不在传进方法时隐式装箱,而在之前手动显式装箱吧
··
  • 打赏
  • 举报
回复
如果说 object o=i; 这个类型转换,它最多只是“隐式类型转换”。

说它是类型转换,不如说它是装箱更具体一些。
littlecc2009 2010-03-07
  • 打赏
  • 举报
回复
引用 16 楼 hsm88886 的回复:
不能捷足先登,无动于衷 二地五二 二地一 

??????????????????
littlecc2009 2010-03-07
  • 打赏
  • 举报
回复
引用 13 楼 starseeker7 的回复:
额,,难道是,,免得不知道到底是啥被装箱成啥了, ,,,
比如假设 Add具备多态的情况下- -
猜的- -

我也觉得可能是这样。。。
兔儿爷 2010-03-07
  • 打赏
  • 举报
回复
可以先去看看 基本类型转换 你就知道什么时候需要显式转换,什么时候隐式装箱,说白了,显式转换一定要写转换类型,而隐式可写可不写。
starseeker7 2010-03-07
  • 打赏
  • 举报
回复
额,,难道是,,免得不知道到底是啥被装箱成啥了, ,,,
比如假设 Add具备多态的情况下- -
猜的- -
程序员鼓励师 2010-03-07
  • 打赏
  • 举报
回复
polarissky 2010-03-07
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
大概它的意思是说通过增加你第二行的装箱,这样第三行就不用装箱了。

换汤不换药,为了第三行不用装箱于是特意增加了第二行装箱。

分析的十分透彻学习
  • 打赏
  • 举报
回复
显示类型转换在哪里呢?
littlecc2009 2010-03-07
  • 打赏
  • 举报
回复
引用 8 楼 amandag 的回复:
可以使用Dictionary泛型类代替HashTable类避免装箱

using System.Collections.Generic;

int i = 100;
Dictionary <string, int> d = new Dictionary <string, int>();
d["one"] = i;


嗯嗯~这个知道~~
amandag 2010-03-07
  • 打赏
  • 举报
回复
可以使用Dictionary泛型类代替HashTable类避免装箱

using System.Collections.Generic;

int i = 100;
Dictionary<string, int> d = new Dictionary<string, int>();
d["one"] = i;
chen_ya_ping 2010-03-07
  • 打赏
  • 举报
回复
引用楼主 littlecc2009 的回复:
请问,有这样一句:
int i=100;
object o=i;
hashtable ht=new hashtable();
ht.Add(“one”,o);

书上说这样“hashtable的add方法接受object类型参数,因此通过显式类型转换减少隐式装箱”。
我想问问,反正都要装箱,为什么要显式转换代替隐式装箱呢??

这个问题可以你可以查看IL语言来得到答案
加载更多回复(4)

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧