如何检查是否存在特定参数?

时间:2017-07-13 12:20:01

标签: c# arguments

我制作了一个解析命令行参数的程序...... 我的代码:

for (var x = 0; x < args.Length; x++)
        {
            switch (args[x].Trim())
            {
                case "--message":
                    if (args[x + 1] == null) // <= the problem
                    {
                        Console.WriteLine("Option {0} requires an argument.", args[x]);
                        Environment.Exit(1);
                    }
                    else
                    {
                        Console.WriteLine("Your message: " + args[x + 1]);
                        Environment.Exit(0);
                    }
                    break;
            }
        }

因此,当我输入:&#39; myprogram.exe --message mymessage&#39;时,程序会打印我的消息而不会出现任何错误。但我的问题是:如果没有指定消息:&#39; myprogram.exe --message&#39;,它会崩溃,因为args [x + 1]不存在。如何检查args [x + 1]是否存在?

PS:感谢downvote!

感谢您的回答! -AppPrinter

1 个答案:

答案 0 :(得分:0)

替换

if (args[x + 1] == null)

if (args.Length <= x + 1 && args[x + 1] == null)

检查args中是否至少有x + 1项。 #

只是一个想法:有几个框架用于解析命令行参数。您不必编写自己的逻辑;)