2016-02-28 79 views
0

看來謝謝菲爾·阿利森已經有固定的我的第一個問題,但現在我的新的錯誤是用線做246System.IndexOutOfRangeException:索引是數據庫數組的邊界之外 - Game.cs

     if (Tamer.DigimonList.Length >= 3) { 
          if (Tamer.DigimonList[3] == null) qry.Add("mercenary3", null); 
             else qry.Add("mercenary3", Tamer.DigimonList[3].DigiId); 
        } 

你好,我很喜歡這個,如果任何人都可以給我一些體面的建議,以改善這個職位,甚至幫助我與我的問題,將非常感激!

只加載到了比賽,但在錯誤發生後遊戲崩潰似乎是行245是下面這樣

     if (Tamer.DigimonList[3] == null) qry.Add("mercenary3", null); 
        else qry.Add("mercenary3", Tamer.DigimonList[3].DigiId); 

的錯誤

System.IndexOutOfRangeException:索引之外 數組的邊界。在Digital_World.SqlDB.SaveTamer(客戶端)在 C:\用戶\數碼寶貝大師\的Dropbox \數碼寶貝大師 項目\ DMOFrosty'sPost \服務器\ ServerBuildingSection \ DigitalWorld \數據庫 - Game.cs:行245

代碼

Character Tamer = client.Tamer; 
       using (MySqlConnection con = Connect()) 
       { 
        Query qry = new Query(Query.QueryMode.UPDATE, "chars", new Tuple<string, object>("characterId", Tamer.CharacterId)); 
        qry.Add("charModel", (int)Tamer.Model); 
        qry.Add("charName", Tamer.Name); 
        qry.Add("charLv", Tamer.Level); 
        qry.Add("experience", Tamer.EXP); 
        qry.Add("money", Tamer.Money); 

        qry.Add("partner", Tamer.DigimonList[0].DigiId); 
        if (Tamer.DigimonList[1] == null) qry.Add("mercenary1", null); 
        else qry.Add("mercenary1", Tamer.DigimonList[1].DigiId); 
        if (Tamer.DigimonList[2] == null) qry.Add("mercenary2", null); 
        else qry.Add("mercenary2", Tamer.DigimonList[2].DigiId); 
        if (Tamer.DigimonList[3] == null) qry.Add("mercenary3", null); 
        else qry.Add("mercenary3", Tamer.DigimonList[3].DigiId); 

回答

0

你確定Tamer.DigimonList是3項的數組?我看不到它在哪裏初始化。您可以通過首先檢查數組長度是否大於或等於檢查爲空之前的值來進行更改檢查。例如:

if (Tamer.DigimonList.Length >= 3 && Tamer.DigimonList[3] == null... 

這首先檢查數組的長度。如果它小於3,則其他檢查不執行,並且應該避免獲得索引異常。

編輯:對不起。由於其他原因,您將需要封裝代碼。所以更多像這樣:

if (Tamer.DigimonList.Length >= 3) { 
    if (Tamer.DigimonList[3] == null) qry.Add("mercenary3", null); 
       else qry.Add("mercenary3", Tamer.DigimonList[3].DigiId); 
} 
+0

我看到謝謝你的建議,以及援助! – Draco

+0

這已經解決了我的錯誤,完全謝謝你! – Draco

相關問題