可能很愚蠢,但却为此感到困惑。
当我使用VS 2017创建一个新的空.net核心项目时,我有了这个Program.cs文件。
文件中的程序类如下所示。
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();
}
Run Code Online (Sandbox Code Playgroud)
我无法获取最后一行中发生的事情,特别是在lambda运算符(=>)之后吗?那似乎不是lambda表达式。那是什么?
有人可以解释一下以下内容。我知道lambda表达式,但无法弄清楚。
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)
小智 6
如果仅返回单个表达式,则可以使用它而不是花括号。
这个
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)
与此相同
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();
}
Run Code Online (Sandbox Code Playgroud)
该=>符号在 C# 代码的不同部分具有不同的含义。您在这里询问的特定部分称为Expression Bodied Method。
您可以使用它来声明只有一条语句的方法。如果该语句返回一个值,并且该方法被声明为返回一个值,那么它也将隐式返回该语句中的值。
以下是表达式主体方法的示例:
public int Value => 42;
Run Code Online (Sandbox Code Playgroud)
public int Value
{
get => _Value;
set => _Value = value;
}
Run Code Online (Sandbox Code Playgroud)
(请注意,您还可以将其与传统语法混合搭配,这样您就有了一个表达式主体的 getter 方法和带大括号的传统 setter)
(表达式主体属性是 C# 7 中的新增属性)
public void WriteLog(string message) => Console.WriteLine(message);
public int Sum(int a, int b) => a + b;
Run Code Online (Sandbox Code Playgroud)
(第一个方法不返回任何内容,因此虽然语法名称包含“表达式”,但它不必计算结果)
public class Test
{
private readonly int _Value;
public Test(int value) => _Value = value;
Run Code Online (Sandbox Code Playgroud)
(表达式主体构造函数是 C# 7 中的新增内容)
public class Test : IDisposable
{
~Test() => Dispose(false);
Run Code Online (Sandbox Code Playgroud)
(表达式主体析构函数是 C# 7 中的新功能)
public class Test
{
private readonly int _A;
private readonly int _B;
public Test(int a, int b) => (_A, _B) = (a, b);
Run Code Online (Sandbox Code Playgroud)
(请注意,最后一个示例也使用元组,请负责任地对构造函数使用此语法)
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |