2017-02-22 20 views
-2

Я получил эту ошибку во время выполнения. Если вы можете объяснить, что это большая помощь для меня, чтобы сделать свое кодирование. Спасибо.Ошибка моего кода «System.IndexOutOfRangeException»

public int timePeriodInSeconds(String timeInFormat) 
    { 
     System.Diagnostics.Debug.WriteLine("timePeriodInSeconds timeInFormat= " + timeInFormat); 
     String[] timeFactors = timeInFormat.Split(':'); 
     System.Diagnostics.Debug.WriteLine("timePeriodInSeconds timeFactors[0]" + timeFactors[0]); 
     System.Diagnostics.Debug.WriteLine("timePeriodInSeconds timeFactors[1]" + timeFactors[1]); 
     System.Diagnostics.Debug.WriteLine("timePeriodInSeconds timeFactors[2]" + timeFactors[2]); 

     int hours = Convert.ToInt32(timeFactors[0]); 
     int minutes = Convert.ToInt32(timeFactors[1]); 
     int seconds = Convert.ToInt32(timeFactors[2]); 

     System.Diagnostics.Debug.WriteLine("timePeriodInSeconds hours" + hours); 
     System.Diagnostics.Debug.WriteLine("timePeriodInSeconds minutes" + minutes); 
     System.Diagnostics.Debug.WriteLine("timePeriodInSeconds seconds" + seconds); 

     return (hours * 60 * 60 + minutes * 60 + seconds); 

    } 
+1

'timeFactors' имеет только 1 позицию, и вы пытаетесь получить доступ ко второму (вне пределов). Просто отлаживайте свой код – Petaflop

+0

Спасибо, сэр. Я не знаком с этим языком. Эта часть кодирования выполняется моим другом. Теперь я хочу разработать this.so эта ошибка возникает. Вы можете объяснить дальше. – SNP

+0

Если вы новичок в этом языке, я бы рекомендовал вам приобрести книги и начать работу. В этом конкретном случае это должно помочь вам понять, что происходит: http://csharp.net-tutorials.com/basics/arrays/ – Petaflop

ответ

0

Это исключение означает, что вы пытаетесь получить доступ к элементу коллекции по индексу с использованием недопустимого индекса. Индекс недопустим, если он ниже нижней границы коллекции или больше или равен количеству содержащихся в ней элементов.

Дана массив объявлен как:

byte[] array = new byte[4]; 

Вы можете получить доступ к этому массиву от 0 до 3, значения вне этого диапазона приведет к IndexOutOfRangeException быть выброшено. Помните об этом при создании и доступе к массиву.

+0

Я новый ученик C#. Вы можете дать любой сайт для ссылки на C# well.it is великая помощь, чтобы увеличить мои знания. Спасибо, сэр. – SNP

+0

Вы можете сослаться на эту ссылку https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169?l=Lvld4EQIC_2706218949 –

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

  • Нет связанных вопросов^_^