2017-02-22 6 views
-2

Ich habe diesen Fehler in der Laufzeit. Wenn Sie erklären können, ist das eine große Hilfe für mich, meine Codierung zu tun. Vielen Dank.Fehler meines Codes "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' hat nur 1 Position und Sie versuchen, auf die zweite (außerhalb der Grenzen) zuzugreifen. Debuggen Sie einfach Ihren Code – Petaflop

+0

Vielen Dank sir.Ich bin neu in dieser Sprache.Dieser Codierteil wird von meinem Freund gemacht.Nun möchte ich das entwickeln.so ist dieser Fehler aufgetreten.Können Sie weiter erklären. Bitte. – SNP

+0

Wenn Sie neu in der Sprache sind, würde ich Ihnen empfehlen, einige Bücher zu bekommen und loszulegen. In diesem speziellen Fall sollte dies Ihnen helfen zu verstehen, was passiert: http://csharp.net-tutorials.com/basics/arrays/ – Petaflop

Antwort

0

Diese Ausnahme bedeutet, dass Sie versuchen, mithilfe eines ungültigen Index auf einen Sammlungsartikel per Index zuzugreifen. Ein Index ist ungültig, wenn er niedriger als die Untergrenze der Sammlung oder größer als oder gleich der Anzahl der enthaltenen Elemente ist.

Da erklärt ein Array als:

byte[] array = new byte[4]; 

Sie dieses Array von 0 bis 3 zugreifen können, Werte außerhalb dieses Bereichs verursachen IndexOutOfRangeException geworfen werden. Denken Sie daran, wenn Sie ein Array erstellen und darauf zugreifen.

+0

Ich bin ein neuer Lerner von C# .können Sie jede Website beziehen sich auf C# well.it ist große Hilfe, um mein Wissen zu erhöhen. Danke, mein Herr. – SNP

+0

Sie können diesen Link verweisen https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169?l=Lvld4EQIC_2706218949 –

Verwandte Themen