Avatar ·

在C#中解析命令行参数的最佳方式:从手动解析到现成库

大家好!我是C#新手,正在编写一个需要从命令行接收参数的console应用程序。例如,用户像这样运行程序: ``` MyApp.exe --input file.txt --output result.txt --verbose ``` 目前我通过`for`循环和`switch`手动解析`args`,但代码变得很糟糕:大量嵌套的if-else,难以添加新flag,而且如果用户传递`--input`而没有值,程序会抛出异常。以下是我的代码: ```csharp static void Main(string[] args) { string input = null; string output = null; bool verbose = false; for (int i = 0; i < args.Length; i++) { switch (args[i]) { case "--input": input = args[++i]; // 如果没有下一个参数——Exception break; case "--output": output = args[++i]; break; case "--verbose": verbose = true; }