C#控制台 - 如果没有传递参数,请执行用户输入

时间:2017-04-26 10:33:53

标签: c# console console-application

我有一个C#-Console-Program,被另一个程序调用。

另一个程序应该将参数传递给我的程序。

现在,如果没有参数传递给程序,我想这样做,以便用户在args函数的Main字符串数组中输入一个参数。

我知道您可以检查args字符串的长度,看看它是否包含这样的内容:

 if(args.Length == 0){}

但我似乎没有得到它,以便用户可以在控制台中输入一个新值到args数组。

我已经尝试过这样:

if(args.Length == 0)
        {
            args[0] = Console.ReadLine();
        }

但它只会抛出错误,因为索引超出范围。

有没有办法为args - 数组添加索引或以其他任何方式处理这种情况?或者我是否需要重写我的代码,以便它不直接使用args - 数组,而是检查数组中是否有参数,如果没有创建新数组?

2 个答案:

答案 0 :(得分:3)

更好的方法是:

String username, password;

if (args.Length >= 1) username = args[0];
else username = Console.ReadLine();

if (args.Length >= 2) password = args[1];
else password = Console.ReadLine();

这样你就可以获得有意义的变量而不是哑数组;

答案 1 :(得分:2)

    if (args.Length == 0)
    {
         // args[0] does not exist because it is an empty array.
         // assign it with an new array of string instead.
         args = new string[] { Console.ReadLine(), };
    }