VS2022新版控制台应用模板中如何访问命令行参数?
C# 9+ 控制台顶级语句模板获取命令行参数的方法
你使用的是Visual Studio 2022默认的C# 9及以上版本顶级语句模板,该模板省略了传统的Program类和Main方法定义,你可以通过以下两种方式获取命令行参数:
方法1:直接使用隐式args变量
编译器会自动为顶级语句生成和传统Main方法参数完全一致的string[] args变量,无需额外声明即可直接使用,示例代码如下:
Console.WriteLine("Hello, World!"); // 直接使用隐式提供的args变量 if (args.Any()) { Console.WriteLine($"传入的参数:{string.Join("、", args)}"); } else { Console.WriteLine("未传入任何命令行参数"); }
该方式获取的args不包含程序自身的执行路径,仅包含用户传入的参数,和传统控制台项目的Main方法参数完全一致。
方法2:使用Environment.GetCommandLineArgs()
如果第一种方式无法满足需求(比如需要在非顶级语句的任意位置获取参数),可以调用.NET运行时提供的通用静态方法获取,示例代码如下:
Console.WriteLine("Hello, World!"); // 调用系统静态方法获取全量命令行信息 string[] allArgs = Environment.GetCommandLineArgs(); // 注意:该方法返回的数组第一个元素是当前程序的执行路径,用户传入的参数从索引1开始 if (allArgs.Length > 1) { Console.WriteLine($"传入的参数:{string.Join("、", allArgs.Skip(1))}"); } else { Console.WriteLine("未传入任何命令行参数"); }
内容的提问来源于stack exchange,提问作者Bozhidar Stoyneff
相关产品推荐
相关产品推荐

