Dictionary 索引超出数组界限

Dictionary 索引超出数组界限今天碰到了一个 Dictionary 的的问题 现记录下 可以查看我提出的问题 http space cnblogs com question 1802 算了 全部 copy 过来吧 程序代码如下 privateIDict string BtsClass btsClassList newDictionar string BtsClass

今天碰到了一个Dictionary的的问题,现记录下:(可以查看我提出的问题:
http://space.cnblogs.com/question/1802/)

算了,全部copy过来吧:

程序代码如下:

private IDictionary

btsClassList = new Dictionary

();

如上的代码,在标著的地方,出现了这样的错误:

 

实在是搞不明白,怎么会出现如上的错误….

请各位老大帮忙看看.

 

提问者: 颜昌钢 – 初学一级

问题补充:反编译查看了下Directory的代码:
btsClassList.Add(btsName,tempClass);

btsClassList[btsName] = tempClass;
最终的不同在于调用 Insert(TKey key, TValue value, Boolean add)
这个方法传递的参数不同.

前一种方法的Boolean add 为true;
后一种方法的Boolean add 为false;

而唯一用到这个 参数的地方 只有一处:
for (int i = this.buckets[index]; i >= 0; i = this.entries[i].next)
{
if ((this.entries[i].hashCode == num) && this.comparer.Equals(this.entries[i].key, key))
{
if (add)
{
ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_AddingDuplicate);
}
this.entries[i].value = value;
this.version++;
return;
}
}

看了下,不管用哪种方法,似乎还是会存在 错误的可能….

索引超出数组界限….看见这个问题的时候,最开始以为btsClassList[btsName] = tempClass; 这样使用,当空间不够的时候,没有重新申请空间 才会导致 有这样的错误.
看了下源代码,实际上当 栈间不够的时候,有重新在分配的过程……..

//2008-07-04 18:49:00
呵呵,产生这样的错误,最终可能在于:
1:程序 多线程
2:Directory 不是线程安全的……

参考:
1:http://forums.msdn.microsoft.com/zh-CN/netfxbcl/thread/c8a83d23-a62e-4e37-a902-8e229bf3c31f/
2:http://forums.msdn.microsoft.com/zh-CN/csharpgeneral/thread/283a0e50-749e-43de-9f3c-6af314ff31be/


[ 问题补充 ]  [ 提高悬赏 ]  [ 无满意答案 ]  
所有回答(2)
btsClassList[btsName] = tempClass;//这个地方,出现错误。。。

老兄JS写多了,入戏太深了吧

.Add(
 





2小时前  
回答者:
t-mac.NET – 菜鸟二级

问题解决如楼上所说

IDirectory支持这么用,但是Directory不允许,如果声明IDirectory是Hashtable的话就可以这么用。















































转载于:https://www.cnblogs.com/yanchanggang/archive/2008/07/04/1235900.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206385.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午3:49
下一篇 2026年3月19日 下午3:49


相关推荐

  • Python构建AI Agent自主智能体系统深度好文

    Python构建AI Agent自主智能体系统深度好文

    2026年3月15日
    2
  • Cursor怎么创建文件? Cursor编辑器新建文件详细操作方法

    Cursor怎么创建文件? Cursor编辑器新建文件详细操作方法

    2026年3月16日
    1
  • 【J2EE】13个规范

    【J2EE】13个规范【J2EE】13个规范

    2022年4月24日
    47
  • java crontab_crontab详解

    java crontab_crontab详解一 crond 简介 crond 是 linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 与 windows 下的计划任务类似 当安装完成操作系统后 默认会安装此服务工具 并且会自动启动 crond 进程 crond 进程每分钟会定期检查是否有要执行的任务 如果有要执行的任务 则自动执行该任务 Linux 下的任务调度分为两类 系统任务调度和用户任务调度 系统任务调度 系统周期性所要执行的工作

    2026年3月17日
    2
  • matlab层次聚类中birch,Birch层次聚类

    matlab层次聚类中birch,Birch层次聚类Birch 层次聚类算法标签 空格分隔 CF 树建立 BIRCH 算法比较适合于数据量大 类别数 K 也比较多的情况 它运行速度很快 只需要单遍扫描数据集就能进行聚类 当然需要用到一些技巧 下面我们就对 BIRCH 算法做一个总结 个人建议 如想要自己写 CF 树生成代码前 请先了解一下 B 树的构造与写法对之后的代码完成将会有帮助 1 聚类特征 CF 与聚类特征树 CFTree 在聚类特征树中 一个聚类特征 CF 是这

    2026年3月17日
    2
  • dfs是什么意思_bmob分页查询

    dfs是什么意思_bmob分页查询给定 n 个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?输入格式第一行是一个正整数 n。第二行是 n 个不大于10000的正整数。输出格式一个正整数,即最少需要的组数。数据范围1≤n≤10输入样例:614 20 33 117 143 175输出样例:3#include<bits/stdc++.h>using namespace std;const int N = 1e2 + 10;int a[N],g[N][N];int n;int

    2022年8月8日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号