You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#无显式Main方法时命令行参数args的来源是哪里?

问题解答

1. 程序入口点说明

ASP.NET Core 6 模板默认使用 C# 9 引入的顶级语句语法简化启动代码,看不到显式声明的Main方法不代表没有入口点:

  • 编译器会自动为包含顶级语句的Program.cs文件生成隐含的<Program>类,以及标准的static async Task Main(string[] args)方法作为程序唯一入口
  • 你在Program.cs里写的所有全局代码,都会被编译器自动放到这个生成的Main方法内部按顺序执行

2. args参数的来源

代码里直接使用的string[] args是顶级语句语法的内置参数:

  • 编译器生成Main方法时,会自动将运行程序时传入的命令行参数赋值给这个内置的args变量,和传统写法里手动声明的Main方法的入参完全等价
  • 你将其传入WebApplication.CreateBuilder(args)后,ASP.NET Core 会自动把命令行参数纳入配置系统,后续可以通过IConfiguration读取对应配置项

你可以直接在Program.cs最开头添加代码验证逻辑:

Console.WriteLine($"传入的命令行参数数量:{args.Length}");
foreach (var arg in args)
{
    Console.WriteLine(arg);
}

编译后在命令行启动程序时携带参数,就能看到对应输出,和其他编程语言的命令行参数获取逻辑完全一致。

内容的提问来源于stack exchange,提问作者Ardent Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:36:09