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

C# Lambda表达式使用大括号与不使用的区别及代码疑问

ASP.NET Core中两种Lambda写法的区别与重复调用MapControllers的说明

两种Lambda写法的区别

  • 不带大括号的写法 endpoint => endpoint.MapControllers() 是C#的简化Lambda语法:当Lambda表达式的执行体只有一行语句时,可以省略包裹代码块的大括号{}。它和带大括号的版本功能完全一致,只是写法更简洁。
  • 带大括号的写法 endpoints => { endpoints.MapControllers(); } 是完整Lambda语法:用大括号明确包裹代码块,这种写法适合Lambda内部需要执行多行语句的场景。哪怕只有一行语句,写大括号也是合法的,但属于冗余写法。

简单说,这两种写法在功能上没有任何区别,只是语法形式不同。

为什么两次调用MapControllers?

这属于完全没必要的冗余代码:

  • UseEndpoints的作用是配置ASP.NET Core的终结点路由,MapControllers则是添加控制器对应的路由规则,让框架能识别并处理控制器的请求。
  • 只需要调用一次MapControllers就足够完成配置,重复调用不会产生任何额外效果,也不会优化路由功能,反而属于无效代码,建议删掉其中一次调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:12:01