我有一个C#-Console-Program,被另一个程序调用。
另一个程序应该将参数传递给我的程序。
现在,如果没有参数传递给程序,我想这样做,以便用户在args
函数的Main
字符串数组中输入一个参数。
我知道您可以检查args
字符串的长度,看看它是否包含这样的内容:
if(args.Length == 0){}
但我似乎没有得到它,以便用户可以在控制台中输入一个新值到args
数组。
我已经尝试过这样:
if(args.Length == 0)
{
args[0] = Console.ReadLine();
}
但它只会抛出错误,因为索引超出范围。
有没有办法为args
- 数组添加索引或以其他任何方式处理这种情况?或者我是否需要重写我的代码,以便它不直接使用args
- 数组,而是检查数组中是否有参数,如果没有创建新数组?
答案 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(), };
}