C# Web API项目中CreateHostBuilder中的Lambda表达式

C# Web API项目中CreateHostBuilder中的Lambda表达式,c#,asp.net,.net,C#,Asp.net,.net,我最近开始学习C#和Web API。当我在VisualStudio2019中创建一个新的ASP.NET核心Web应用程序时,它为WeatherForecast生成了一些代码。下面是我难以理解的代码段 public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostB

我最近开始学习C#和Web API。当我在VisualStudio2019中创建一个新的ASP.NET核心Web应用程序时,它为WeatherForecast生成了一些代码。下面是我难以理解的代码段

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}
公共类程序
{
公共静态void Main(字符串[]args)
{
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup();
});
}
操作符=>在这里做什么?CreateHostBuilder是类程序的静态方法。它的定义应该以{开头,以}结尾。但是在参数列表的右括号之后,运算符=>被放置。我不明白这种语法是如何工作的。感谢您帮助我们理解这一点。
谢谢

这被称为
expression-bodied

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

您可以在此处阅读更多信息:

这是否回答了您的问题?我在回答中也给出了一个例子。但是是的,可能是上述评论的副本。
public static IHostBuilder CreateHostBuilder(string[] args)
{
    return Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });
}
private string name;
// new way:
public string Name { get => name; set => name = value; }
// old way:
public string Name { get { return name; } set { name = value; }