我附上了下面的代码,我得到 IndexOutOfRangeException 未在 A 部分中处理,然后我尝试了如下所示的 Try-catch 但现在我得到了
“在 C:\Users\Rahul Taneja\Documents\Visual Studio 2010\Projects\app\app 中 app.Form6.ZMove(String s1, String s2) 的 app.exe 中发生了类型为‘System.IndexOutOfRangeException’的第一次机会异常\Form6.cs:第 136 行"
在堆栈跟踪中
谁能告诉我为什么会这样,解决办法是什么?
public void ZMove(string s1, string s2)
{
//Move 2-1-4-3
int j = Int32.Parse(s1);
int k = Int32.Parse(s2);
for (int l = 0; l < k; l++)
{
try
{
swap(array[2][j], array[1][j]); ///Part A
swap(array[1][j], array[4][j]);
swap(array[4][j], array[3][j]);
swap(array[3][j], array[2][j]);
}
catch (IndexOutOfRangeException e)
{
MessageBox.Show(e.StackTrace);
//throw;
}
}
}
private void swap(char[] p1, char[] p2)
{
//throw new NotImplementedException();
int l = p1.Length;
for (int i = 0; i < l; i++)
{
char temp = p1[i];
p1[i] = p2[i];
p2[i] = temp;
}
}