System.IndexOutOfRangeException: 索引超出了数组界限

ccds 2013-04-29 08:40:06
try
{
string[] OtherPropArray = itemstats.OtherProp.Split('=');
itemstats.OtherProp = "";
foreach (var prop in OtherPropArray)
{
//prop = "abc-123"
string[] stat = prop.Split('-');
//Debug.WriteLine(stat.Length); 2
if (stat[1] != "0")
itemstats.OtherProp += stat[0] + "\t" + stat[1] + "-";
}
Logger.Instance.WriteItem("{0}-{1}-{2}-{3}-{4}-{5}-{6}-{7}-{8}-{9}",
itemstats.CharName,
itemstats.InternalName,
itemstats.ItemQualityLevel,
itemstats.ItemType,
itemstats.Level,
itemstats.RequiredLevel,
itemstats.WeaponHand,
itemstats.ItemLink,
itemstats.OtherProp,
itemstats.Coinage);
Send("ITEMSTATGOT");
return;
}
catch (Exception ex)
{
Send("Internal server error: " + ex.Message);
Logger.Instance.WriteGlobal(ex.ToString());
return;
}

为啥这句
if (stat[1] != "0")开始会提示System.IndexOutOfRangeException: 索引超出了数组界限啊
纠结,一直找不到原因
但其实stat[0],stat[1]都是有正确的值得
...全文
510 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccds 2013-05-01
  • 打赏
  • 举报
回复 1
搞定了,果然是我的问题,确实有一个值没有- 多谢楼上各位了
wubing1111 2013-04-30
  • 打赏
  • 举报
回复
按你现在PROP有“-”的话 正确,如果这个变量传的值没有“-”的话,你用stat[1]就超出索引了啊,这样取的值只有一个啊,
宝_爸 2013-04-30
  • 打赏
  • 举报
回复
prop 中没有 ‘-’ if ((stat.Length > 1) && (stat[1] != "0")) itemstats.OtherProp += stat[0] + "\t" + stat[1] + "-";
bdmh 2013-04-30
  • 打赏
  • 举报
回复
索引超岀了,对于数组你好歹要注意一下
EnForGrass 2013-04-29
  • 打赏
  • 举报
回复
应该不会吧, abc-123看看是不是你这个-是英文的,分割的那个字符是中文的,
内容概要:本文围绕PID控制在芯片行业晶圆探针台精密运动定位系统中的实战应用展开,重点阐述了级联PID控制、前馈控制、S型加减速规划、摩擦力补偿和陷波滤波器等关键技术。通过C++实现的双闭环级联PID控制器代码,深入剖析了位置环与速度环的协同机制、低通滤波抑制噪声、积分限幅防饱和以及力矩输出保护等工业级设计细节,揭示了高端半导体设备中高精度、高响应运动控制的实现原理。同时展望了数据驱动与智能化趋势下,自抗扰控制(ADRC)和强化学习(RL)在PID参数自整定中的未来发展。; 适合人群:具备自动控制理论基础和C++编程能力,从事精密设备控制、半导体装备制造或运动控制算法研发的工程师,尤其是有1-5年工作经验的技术人员;; 使用场景及目标:①掌握晶圆探针台中微米级定位的运动控制核心技术;②理解并实现双闭环PID在实际工业系统中的抗干扰、防振荡设计;③学习如何通过滤波、限幅、前馈等手段提升控制系统鲁棒性与精度;④为向智能PID控制升级提供技术储备; 阅读建议:此资源结合真实工业场景与代码实现,建议读者结合控制理论知识,逐行分析代码逻辑,并在仿真环境中复现控制器行为,重点关注内外环耦合关系、滤波器设计与抗饱和策略的实际作用。
源码链接: https://pan.quark.cn/s/557aa9a7949b Quartus Prime是由Altera公司(现归Intel所有)研发的全面电子设计自动化软件,主要应用于现场可编程门阵列(FPGA)与复杂可编程逻辑器件(CPLD)的设计、仿真、综合、布局布线及编程。在此案例中,涉及的是Quartus Prime 17.1版本的安装程序,该程序集成有器件库和其他必需模块,适用于Windows 10 64位系统环境,并且已有用户进行测试验证其可用性。**1. Quartus Prime概述**Quartus Prime作为Altera/Intel FPGA设计的核心平台,提供了一个一体化的开发平台,支持从构思到硬件落地的完整开发周期。该软件不仅涵盖逻辑综合、时序评估、仿真、物理布局等基础功能,还提供高速接口知识产权核、嵌入式处理器系统、内存资源管理等多种高级特性。**2. Quartus Prime 17.1版本更新**- 优化的QSYS系统构建工具:17.1版本可能对QSYS进行了升级,使得系统集成更为便捷,支持更多外围设备和处理器模型。- 性能增强:可能提升了综合及布局布线的效率,减少了设计的功耗与面积。- 新器件支持:或许增加了对最新发布的Altera FPGA和CPLD的支持,比如Arria 10、Cyclone 10等系列。- 调试功能强化:可能加强了硬件调试工具,如JTAG调试和软件调试器的效能。**3. 器件库**器件库是Quartus Prime的重要组成部分,其中包含Altera FPGA和CPLD的参考库,这些库中收录了各类逻辑单元、输入输出端口、存储单元等硬件资源的模型,用于设计阶段进行逻辑综合和布局布线。**4. 其...

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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