You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#新手开发遇索引超出数组界限错误,求排查代码问题

错误根因

报错的核心原因是随机索引的生成逻辑不符合数组的合法索引规则:

  • 无参数的Random.Next()方法返回的随机数范围为[0, 2147483647),而你通过question1.Text.Split()得到的Names数组长度远小于这个最大值,生成的索引大概率超出数组的合法索引范围(数组的合法索引区间为[0, 数组长度 - 1]),因此触发数组越界报错。

修复代码

替换你报错位置的相关代码即可:

var random = new Random();
var Names = question1.Text.Split();
// 增加数组非空判断,避免空数组访问报错
if (Names.Length == 0)
{
    return;
}
// 调用带参数的Next方法,传入数组长度作为上限,保证生成的索引合法
int index = random.Next(Names.Length);
string randomName = Names[index];

其他潜在问题修复

你的代码还有两处可优化的异常点:

  • 不要在TextBox_TextChanged事件中重复实例化ChromeDriver,会生成大量冗余的浏览器进程,建议将ChromeDriver实例改为类全局变量,仅初始化一次
  • 导航链接需要补全协议头,将string url = "google.com";修改为string url = "https://google.com";否则会导航失败

内容的提问来源于stack exchange,提问作者golden leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:45:10