C# Web API项目中CreateHostBuilder中的Lambda表达式
我最近开始学习C#和Web API。当我在VisualStudio2019中创建一个新的ASP.NET核心Web应用程序时,它为WeatherForecast生成了一些代码。下面是我难以理解的代码段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
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; }