-3

运行上述代码时出现错误并且不知道确切的问题。解决方案是什么?

using System;

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

        Console.ReadLine();
    }
}

错误是“索引超出范围”

4

5 回答 5

4

您缺少参数位置

Console.WriteLine("Hello,{0}!", args[0]); 
于 2012-06-06T22:40:51.143 回答
4

string[] args参数是exe的命令行参数。我猜你没有传递任何参数,因此args[0]超出范围,就像它说的那样。如果您将 exe 运行为:

your.exe MyName

那么它至少会通过IndexOutOfRangeException- 来提高 a FormatException;p 要解决这个问题,请将 更改{}{0}

于 2012-06-06T22:40:54.713 回答
1

这对我有用。检查以确保有参数。如果没有,请在控制台上提供反馈。

        if (args.Length == 0)
        {
            Console.WriteLine("No input parameters were received.");
            return;
        }
于 2013-07-13T19:52:07.043 回答
1

我相信您在 Visual Studio 上运行了该程序,因此在没有针对arg[].

要传入一个参数E.g. Scott to arg[]

  1. 转到解决方案资源管理器(菜单ViewSolution Explorer

  2. 选择属性

  3. 在“开始选项”部分下的“命令行参数”文本框中输入“Scott” 。

    该程序将正常运行。见下图。

b

于 2016-06-05T15:24:18.147 回答
0

如果 args 有零项,那么尝试获取它的第一个索引(即 0)将导致索引越界异常。在尝试引用其中的索引之前,您应该检查 args 是否为空或空。如果您使用一些命令行参数运行该示例,它可能会起作用。

于 2012-06-06T22:40:38.527 回答