我尝试了以下代码。我不明白为什么我继续争取一个超出范围的论点"异常。
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;
}
}
答案 0 :(得分:8)
Substring
的第二个参数是长度,而不是结束索引。如果你想从45开始尝试3个字符,请尝试
string newString = fileData.Substring(45, 3);
答案 1 :(得分:1)
你的问题有点含糊不清,但我猜它是由你的Substring方法造成的。如果您的任何一个值大于字符串的长度,则会抛出ArgumentOutOfRangeException
。
答案 2 :(得分:0)
这是因为你在fileData的索引45处进行了一个长度为48的子字符串,并不能保证fileData足够长。要安全地执行此操作,您需要检查fileData的长度是否至少为93个字符。