2016-10-21 3 views
0

Я получаю индекс вне границ по строкам 33 и 46. Почему это? Я пытаюсь изменить массив. Я знаю, что означает код ошибки, но я не знаю, почему я его получаю. Строка 33 - строка reverseed = ReverseArray (крафтинг); Линия 46 - обратная обратная конструкция [5];Почему он показывает, что индекс находится за пределами границ массива

 //make an array to be reversed 
     string[] craftArray = new string[5] { "Iron", "Stone", "Copper", "Steel", "Clay" }; 


     //create a variable to hold return value 
     string[] crafting = new string[5]; 





     //function call the ReverseCraft method 
     string reversed = ReverseArray(crafting); 

     //Report the calculation to the user 
     Console.Write("The array reversed is" + reversed); 



    } 
    public static string ReverseArray(string[] craft) 
    { 
     //create a variable and reverse 
     string[] reverseCraft = new string[5] { craft[4], craft[3], craft[2], craft[1], craft[0] }; 
     //return value 
     return reverseCraft[5]; 

    } 
} 
} 
+1

'reverseCraft [5]' должно быть '[4]'. Поскольку массивы основаны на нулевом значении. – Steve

+0

Ваш счетчик строк также выходит за рамки – Plutonix

+0

Метод ReverseArray должен возвращать массив строк, а не строку. – NineBerry

ответ

2

Ваш обратный метод имеет неправильную подпись. Она должна возвращать string[], как это:

public static string[] ReverseArray(string[] craft) { 
    //create a variable and reverse 
    string[] reverseCraft = new string[5] { craft[4], craft[3], craft[2], craft[1], craft[0] }; 
    //return value 
    return reverseCraft; 
} 

С помощью этого кода на месте, все, что вам нужно сделать, это распечатать результат правильно:

string[] reversed = ReverseArray(crafting); 
//Report the calculation to the user 
Console.Write("The array reversed is " + string.Join(", ", reversed)); 
+0

Хорошо, спасибо. Есть ли другой способ сделать это вместо использования string.join? – Xoax

+0

@Xoax Да, вы можете написать цикл. – dasblinkenlight

+1

В любом случае, спасибо. Отлично. – Xoax

0

Это бросает ошибку на линии

return reverseCraft [5];

т.к. нет обратныйCraft [5].

Первый элемент reverseCraft - reverseCraft [0], а последний элемент - reverseCraft [4].

+0

Исправлена ​​эта часть. спасибо – Xoax

Смежные вопросы