2017-02-20 90 views
0

我是新來的請幫助我。代碼正在運行,但之後,compailer不打印任何內容,並給出IndexOutOfRangeException的錯誤。我收到錯誤IndexOutOfRangeException

class Program 
    { 
     static void Main(string[] args) 
     { 
      string brd = board(); 
      string[] sub = subjects(); 
      Console.WriteLine(brd); 
      Console.WriteLine(sub); 
      Console.ReadLine(); 
     } 
     public static string board() 
     { 
      Console.WriteLine("Please Enter Board Name "); 
      string Board = Console.ReadLine(); 
      return Board; 
     } 
     public static string[] subjects() 
     { 
      Console.WriteLine("Please Enter How many Subject Do you Want to input"); 
      int limit = System.Convert.ToInt32(Console.ReadLine()); 
      string[] Subjects = new string[limit]; 
      string[] index = new string[limit]; 
      for (limit = 1; limit <= index.Length; limit++) 
      { 
       Console.WriteLine("Please Enter Subject Name " + limit); 
       Subjects[limit] = Console.ReadLine(); 
      } 
      return Subjects; 
     } 
      } 
+0

陣列中NET開始,你可以找到這個信息無處不在 – Steve

+0

'的(限= 1;限制<= index.Length;限制++)'應該是'爲( limit = 0; limit Mairaj

回答

2

更改此:

for (limit = 1; limit <= index.Length; limit++) 

這樣:

for (limit = 1; limit < index.Length; limit++) // <= to < 

指數總是比Length更低,因爲從索引(從1不)0開始。在你的情況下,它可以等於Length

另外,你從第二個元素開始。從第一次啓動:

for (limit = 0; limit < index.Length; limit++) //limit = 0 
+0

可能你想從0開始,而不是1. – wkl

+0

@wkl,謝謝,編輯 –

0

數組是0索引,所以訪問的第一個項目將是在0

您的循環應該爲0,因此開始。

例如代碼中的for循環應該看起來像這樣。索引爲0如果你瞭解NET任何教程

for (limit = 0; limit < index.Length; limit++)