2012-06-06 87 views
-3

運行上面的代碼時出錯,不知道確切的問題請爲此提供解決方法。瑣碎的程序拋出IndexOutOfRangeException?

using System; 


class second 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("Hello,{}!", args[0]); 
     Console.WriteLine("Welcome to the C# station Tutorial!"); 

     Console.ReadLine(); 
    } 
} 

錯誤是索引超出範圍。

+1

**好,_what芸,誤差?**你看了嗎? – SLaks

+0

你是怎麼執行這個的?你真的把任何參數傳遞給Main()? – dckrooney

+4

您的代碼與您從其複製的[tutorial](http://www.csharp-station.com/tutorials/lesson01.aspx)不一樣。你真的讀過這個教程嗎?我相信你會在那裏找到答案。 –

回答

0

如果參數args的值爲零,那麼嘗試獲取它的第一個索引(即0)將導致索引超出範圍異常。在嘗試引用其中的索引之前,應檢查該參數是否爲空或空。如果你用一些命令行參數運行這個例子,它可能會起作用。

4

你缺少的說法位置

Console.WriteLine("Hello,{0}!", args[0]); 
4

string[] args參數是命令行參數的EXE。我猜你沒有通過任何論點,因此args[0]超出範圍,就像它說的那樣。如果你運行你的EXE爲:

your.exe MyName 

話,那就得至少有過去IndexOutOfRangeException - 提出一個FormatException代替,P爲了解決這個問題,改變{}{0}

+0

我試過但現在工作 – Newbie

0

這是爲我工作。檢查以確保有參數。如果沒有,請在控制檯上提供反饋。

 if (args.Length == 0) 
     { 
      Console.WriteLine("No input parameters were received."); 
      return; 
     } 
0

我相信你運行該程序關閉Visual Studio的,因此已經沒有任何參數傳遞對ARG []運行程序。

要傳遞一個參數E.g. Scott to arg[]

  1. 去解決方案管理器(查看>解決方案資源管理器)
  2. 選擇屬性。
  3. 在「開始選項」部分的「命令行參數」文本框中輸入「Scott」。

    該程序將正常運行。見下圖。

b