我遇到了這個奇怪的IndexOutOfRangeException異常。我有工作的代碼原本是C代碼,我設法把它翻譯成C#IndexOutOfRangeException出於一些奇怪的原因
所以我在跟隨着循環給我的錯誤:
for (int i = 0; i < 6; i++)
{
L[0] = new double[]{ T[0] + rxp[0][i] - (p[0][i])
}
按照「當地人」選項卡,RXP只有3個「兒童」只有1件/小孩。 所以我想這個問題是在這裏:
void getrxp()
{
for (int i = 0; i < 6; i++)
{
rxp[0] = new double[]{ M[0][0] * (re[0][i]) + M[0][1] * (re[1][i]) + M[0][2] * 0};
rxp[1] = new double[]{ M[1][0] * (re[0][i]) + M[1][1] * (re[1][i]) + M[1][2] * 0};
rxp[2] = new double[]{ M[2][0] * (re[0][i]) + M[2][1] * (re[1][i]) + M[2][2] * 0};
}
}
我收到這創造double rxp[3][6];
陣列錯誤或有別的東西?
原始代碼看起來像這樣(C):
void getrxp()
{
for(int i=0;i<6;i++){
rxp[0][i] = M[0][0]*(re[0][i])+M[0][1]*(re[1][i])+M[0][2]*0;
rxp[1][i] = M[1][0]*(re[0][i])+M[1][1]*(re[1][i])+M[1][2]*0;
rxp[2][i] = M[2][0]*(re[0][i])+M[2][1]*(re[1][i])+M[2][2]*0;
}
}
你爲什麼會認爲C中的'rxp [0] [i]'等同於C#中的'rxp [0]'? – Amit
根據他試圖轉換爲C#的C函數,他不想創建一個數組數組。所以,重複標記是錯誤的。 – sithereal
好吧,如果你看看在MSDN的Jagged Arrays,你可以看到爲什麼我這樣做。 – Zoszko