Hashtable的疑惑 Hashtable myHT = new Hashtable();myHT.Add("A",1);myHT.Add("B",2);....myHT["A"]++; //我想让对应key的value加一,但出错.以前用的STL的map这样是没问题的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 myHT["A"]是object类型的。怎么可以自加呢。 ((int)myHT["A"])++; 这样行嘛?但好象也错 以前用的STL的map这样是没问题的.因为你使用的HashTable并不支持泛型。需要先做类型转换。 myHT["A"]=(int)myHT["A"]+1; 好象可以了,难道++没重载? object 类没有重载 ++ 操作符 当然不可以而且里面是 1 是个常量++ 不了,也不是个指针子能取出来 ++ 在方回去 现在JDK5.0已经开始支持泛型了,不知道VC2005是不是也可以了.但我的问题是为什么myHT["A"]=(int)myHT["A"]+1; //可以((int)myHT["A"])++; //出错这是最后的问题了 不行,做类型转换也不行hash表用的是捆绑式的散列桶,在托管堆里面不是连续的,键和值捆绑在一起,失去一个,另一个就找不到了;当然,不能用++这种操作 myHT["A"]++; //我想让对应key的value加一,但出错.answer: 自加运算只有数值类型和字符可以,比如字符串当然不行. object类型不能++,如果要实现++,必须作类型转换。 仔细想了下,应该是这样的:1. myHT["A"]++; 这时候myHT["A"]是object,当然++不支持,大家都说到了.2. ((int)myHT["A"])++; ((int)myHT["A"])应该是个临时变量,而++重载操作需要取变量的地址,但是临时变量是不能取地址的.也就是它只能是个右值,而不是l-value.出错的提示也符合.如果大家有其它的意见,可以讨论讨论. 很可能myHT["A"]表示一个值 而不是一个变量 关于datagridview的问题 【开源】HSL ColorPicker [求助]如何画边长为float的矩形。。。求大神帮忙啊。。。 抽象函数的构造函数 asp.net防SQL注入 我想在这个论坛从零开始学起C#,好多帖子都太难了,也看不懂. 小弟想学c# 可现在什么都不知道 那为大哥能建议先学那本书哈 #####把动态网页转成XML#######(100分) 100分求acrobat sdk或C#例子。加急!!!!!! 各位大哥,Excel里怎样直接加载xml啊?不好意思,分太少了(只有10分了),请大家一定要帮下忙. 读代码 智能客户端和胖客户端、瘦客户端有什么区别?
因为你使用的HashTable并不支持泛型。需要先做类型转换。
好象可以了,难道++没重载?
而且里面是 1 是个常量++ 不了,也不是个指针
子能取出来 ++ 在方回去
但我的问题是为什么
myHT["A"]=(int)myHT["A"]+1; //可以
((int)myHT["A"])++; //出错这是最后的问题了
hash表用的是捆绑式的散列桶,在托管堆里面不是连续的,键和值捆绑在一起,失去一个,另一个就找不到了;当然,不能用++这种操作
1. myHT["A"]++;
这时候myHT["A"]是object,当然++不支持,大家都说到了.
2. ((int)myHT["A"])++;
((int)myHT["A"])应该是个临时变量,而++重载操作需要取变量的地址,但是临时变量是不能取地址的.也就是它只能是个右值,而不是l-value.出错的提示也符合.如果大家有其它的意见,可以讨论讨论.