2014-05-02 62 views
0

有關數組的另一個問題。當我創建一個數組並從鍵盤填充它時,控制檯將顯示多個System.Object []而不是我設置的值。例如,如果我創建一個[5]數組,我得到36 System.Object []而不是我的5值。這是爲什麼?這是使用代碼I'm:C#我得到System.Object []而不是數組中的值

object[] row = new object[5]; 

public void fill() 
    { 
     for (int i = 0; i < 5; i++) 
      { 
       Console.WriteLine("Set the values" + (i+1)); 
       row[i] = Console.ReadLine(); 
      } 
     Console.ReadKey(); 
    } 

public void view() 
    { 
     Console.WriteLine("The values are:"); 
     for (int i = 0; i <= 5; i++) 
     { 
      Console.Write("\n"); 
      for (int j = 0; j <= 5; j++) 
      { 
       Console.Write(row); 
      } 
     } 
     Console.ReadKey(); 
    } 

    static void Main(string[] args) 
    { 
     Program objeto = new Program(); 

     objeto.fill(); 
     objeto.view(); 

     Console.ReadKey(); 
    } 

有沒有錯誤消息,但在屏幕上,我得到這個AFER設置5個值:

的值是:

系統.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object []] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object []System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object [] System.Object的[] System.Object的[] System.Object的[] System.Object的[] System.Object的[] System.Object的[] System.Object的[] System.Object的[]

什麼我可不可以做?

回答

4

因爲row是一個數組,默認.ToString()方法正在打印類型,這是System.Object[]

嘗試寫入row[j]的值而不是row的值。

除了,你似乎有兩個循環,幾乎看起來像你想打印一個多維數組,你的數組不是。因此,外部for循環是不必要的,除非您想要打印5行相同的數據。

+0

是的,你是對的,我做了你提到的改變,現在我在屏幕上顯示值,但是在顯示數組後顯示IndexOutOfRangeException。 T_T – Gabbo2483

+2

由於數組從零開始,因此for循環中的條件應該是j <= 4或j <5 – Sunny

+0

@Sunny說的是正確的。您需要將您的條件更改爲「j <= 4」或「j <5」。 – Icemanind

6

相信它應該是row[j]

for (int j = 0; j <= 5; j++) 
{ 
    Console.Write(row[j].ToString()); 
} 
+0

你是正確的,應該是不是 「我」, 「J」。我的天啊!!!來吧C#,這只是一封信! :D謝謝你的回答:) – Gabbo2483

0

您的視圖更改爲這個...

public void view() 
    { 
     Console.WriteLine("The values are:"); 
     for (int i = 0; i <= 4; i++) 
     { 
      Console.Write("\n"); 
      Console.Write(row[i]); 
     } 
     Console.ReadKey(); 
    } 
相關問題