首页 新闻 会员 周边 捐助

C#代码效率问题

0
悬赏园豆:5 [已解决问题] 解决于 2010-10-08 08:55

问题描述:

有如下两段代码

代码段一:

float a=binr.ReadSingle();//binr是字节流对象,即从字节流中读出一个浮点数

string b=binr.ReadBytes(6).ToString();

ht.Add("A",a);//ht为HashTable对象

ht.Add("B",b);

代码段二:

ht.Add("A",binr.ReadSingle());

ht.Add("B",binr.ReadBytes(6).ToString();

 解释一下哪一种效率高?

X教授的主页 X教授 | 菜鸟二级 | 园豆:240
提问于:2010-09-25 14:42
< >
分享
最佳答案
0

使用后者。

收获园豆:5
Astar | 高人七级 |园豆:40805 | 2010-09-26 15:58
不过取值是要转换。
Astar | 园豆:40805 (高人七级) | 2010-09-26 15:58
能分析一下原因吗?
X教授 | 园豆:240 (菜鸟二级) | 2010-09-27 09:39
@X教授:float a=binr.ReadSingle();string b=binr.ReadBytes(6).ToString();其实仔细看了一下,如果你这a,b两个变量如果后面不用的话,直接加入HT里就行了,这样不剩了两个变量内存空间吗,反整进去的类型也不用强转。
Astar | 园豆:40805 (高人七级) | 2010-09-27 09:44
其他回答(6)
0

X教授:你问的是开发效率呢还是执行效率呢

路过秋天 | 园豆:4787 (老鸟四级) | 2010-09-25 17:03
当然是执行效率,开发效率哪个写的代友少,自然就高,呵呵! 不过,谢谢你!
支持(0) 反对(0) X教授 | 园豆:240 (菜鸟二级) | 2010-10-08 08:35
0

我觉得一样。哈哈

会长 | 园豆:12463 (专家六级) | 2010-09-25 17:38
0

我感觉第二个好些,因为binr.ReadBytes(6).ToString()本身就创建了一个引用,string b=binr.ReadBytes(6).ToString();感觉创建了两个string对象,只不过指向同一个引用。

小闵 | 园豆:502 (小虾三级) | 2010-09-25 22:19
和我之前想的一样,但现在我想隆明白一点,比如,float a=binr.ReadSingle();操作,是不是多了一次复制操作,即把binr.ReadSingle()的值复制给a变量
支持(0) 反对(0) X教授 | 园豆:240 (菜鸟二级) | 2010-09-27 09:42
还有我想更正一点,字符串的String对象的操作,不存在两个引用指向一个String对象的情况,因为string的赋值操作就另外产生一个副本。这就是他和stringbuild对象的区别。
支持(0) 反对(0) X教授 | 园豆:240 (菜鸟二级) | 2010-09-27 09:45
0

下免

.NET快速开发框架 | 园豆:946 (小虾三级) | 2010-09-26 10:44
0

没有多大差别,对于现在的服务器来说,程序的编译过程是很小的。所以你可以不需要考虑这些问题.

费里曼 | 园豆:493 (菜鸟二级) | 2010-09-26 11:39
我问他的差别是有原因的,现在这段代码是在死循环中做的,所能一个小小的操作,对性能影响可以说不大,但如果在这个循环中操作多了,对性能还是有一定影响的。
支持(0) 反对(0) X教授 | 园豆:240 (菜鸟二级) | 2010-09-27 09:39
0

写段代码测试下就知道了

叶竹 | 园豆:205 (菜鸟二级) | 2010-09-27 17:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册