[英]Array in for loop gives array index out of range exception
這是我的代碼:
ShopButton[] allButtons = FindObjectsOfType<ShopButton> ();
for (int i = 0; i < allButtons.Length; i++)
{
allButtons [i].UpdateButtonState ((GameDataManager.publicInstance.skinAvailability & 1 << allButtons [i - 1].ninjaNumber) == 1 << allButtons [i - 1].ninjaNumber);
}
當我運行它時,此代碼為我提供了IndexOutOfRangeException
。
我認為原因是因為第一個索引引起了問題。 如果i以1開頭,則i-1將為0,因此索引all存在於數組allbuttons中。 顯然:如果起始i為0
,則i-1
為-1
; 這將導致index out of range exception
因為所有數組均從索引0
開始且沒有索引-1。 ;
從i = 1
開始,將解決錯誤,因為i-1
將為0
,這在任何數組的索引范圍內。
將循環的一部分更改為:
for (int i = 1; i < allButtons.Length; i++)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.