[英]Array Index Out Of Bounds
Index was outside the bounds of the array 嘗試訪問網站時發生錯誤,下面代碼中的第一行彈出錯誤,對其進行任何更改都會導致下面的行出現更多相同的錯誤。 我只是沒有使用足夠大的數組,還是我的代碼都很慌亂,所以我的數字不好?
我們首先使用正則表達式抓取頁面:
string[] lines = TextBox1.Lines;
label2.Text = "Custom URL Status: Working";
this.working.Text = "Fetching Web URL(s)";
try
{
WebBrowser browser = this.WebBrowser1;
browser.ScriptErrorsSuppressed = true;
for (int i = 0; i < lines.Length; i++)
{
browser.Navigate(lines[i]);
this.BrowserWait(this.WebBrowser1);
string[,] parameter = (string[,])this.preg_match(@"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}[:][0-9]{1,5})", browser.Document.Body.InnerHtml);
if ((parameter[0, 0] == "") | (parameter[0, 0] == null))
{
this.t = new Thread(new ThreadStart(this.getFromSite1));
this.t.Start();
label2.Text = "Custom URL Status: Error";
return;
}
this.t = new Thread(new ParameterizedThreadStart(this._Lambda1));
this.t.Start(parameter);
browser = null;
}
}
這就是所謂的:
private void _Lambda1(object a0)
{
this.handleList((string[,])a0);
}
this.ToolStrip 的第一行有哪些錯誤:
public void handleList(string[,] tmp)
{
Control.CheckForIllegalCrossThreadCalls = false;
this.ToolStripProgressBar1.Maximum = (int)Math.Round((double)(Convert.ToDouble(tmp[2, 0]) - 1.0));
this.ToolStripProgressBar1.Minimum = 0;
this.ToolStripProgressBar1.Value = 0;
int num2 = (int)Math.Round((double)(Convert.ToDouble(tmp[2, 0]) - 1.0));
for (int i = 0; i <= num2; i++)
{
this.ToolStripProgressBar1.Value = i;
this.proxies.Text = Convert.ToString(this.iWork) + "/" + Convert.ToString(this.iTotal);
this.iTotal++;
您確保parameter[0, 0]
不是null
或為空,那么您為什么不檢查parameter[2, 0]
是否也分配在那里?
查看變量的內容就像日志文件中的斷點或一行一樣簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.