簡體   English   中英

數組在for循環中給出數組索引超出范圍異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM