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

请问Microsoft.AspNetCore.WebApplication中new(new() { Args = args })语法含义?

WebApplication类中CreateBuilder方法的语法解析

语法细节拆解

这两段代码用到了C#的简化语法,具体说明如下:

1. 无参CreateBuilder方法

public static WebApplicationBuilder CreateBuilder() =>
        new(new());
  • => 是表达式体成员语法,替代了传统的{ return ...; }写法,让静态方法的定义更简洁,意思就是这个方法直接返回后面表达式的结果。
  • new(new()) 是嵌套实例化:外层new()创建WebApplicationBuilder对象,内层new()是创建它构造器所需的WebApplicationOptions参数实例(WebApplicationBuilder的构造器要求传入WebApplicationOptions类型参数),这里用无参构造生成默认配置的选项对象。

2. 带命令行参数的CreateBuilder方法

public static WebApplicationBuilder CreateBuilder(string[] args) =>
        new(new() { Args = args });
  • 同样用表达式体语法直接返回WebApplicationBuilder实例。
  • new() { Args = args } 是对象初始化器语法:先通过无参构造创建WebApplicationOptions实例,紧接着给它的Args属性赋值为传入的命令行参数数组,省去了先实例化再单独赋值的步骤,写法更紧凑。

实际作用

这两个静态方法是ASP.NET Core提供的快捷入口,用来生成预配置好的WebApplicationBuilder实例——这个实例是构建Web应用的核心,负责配置服务、中间件、主机环境等。无参版本使用默认配置启动,带参数版本则把外部传入的命令行参数整合到应用配置里。

内容的提问来源于stack exchange,提问作者Isaac Tack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:05:05