为什么我会得到一个“;参数超出范围异常”;
本文关键字:参数 异常 范围 一个 为什么 | 更新日期: 2023-09-27 18:28:30
我尝试了以下代码。我不明白为什么我总是得到一个"论点越界"的例外。
private void Easy_Click(object sender, EventArgs e)
{
string fileData =readFile();
if (fileData.Contains(name))
{
int i = fileData.IndexOf(name);
int easyScore = i + name.Length +1;
MessageBox.Show(fileData+" "+i);
string newString = fileData.Substring(45, 48);
Easy.Text=newString;
}
}
Substring
的第二个参数是长度,而不是结束索引。如果您想要从45开始的3个字符,请尝试
string newString = fileData.Substring(45, 3);
您的问题有点模棱两可,但我猜这是由您的Substring方法引起的。如果其中一个值大于字符串的长度,那么就会抛出ArgumentOutOfRangeException
。
这是因为您在fileData的索引45处执行长度为48的子字符串,而不能保证fileData足够长。要安全地执行此操作,您需要检查fileData是否至少有93个字符长。