使用lambda表达式

时间:2020-01-02 09:17:43

标签: c# lambda

在此示例中,我要问的是lambda表达式和等号之间有什么区别:

public string Id => ConfigurationManager.AppSettings["Id"];   

并且:

public string Id = ConfigurationManager.AppSettings["Id"];   

还是没有区别?

2 个答案:

答案 0 :(得分:3)

第一个语句不是lambda,而是expression-body definition(从C#6开始有效)

public string Id => ConfigurationManager.AppSettings["Id"]; 

您可以按照specs

将其应用于方法,属性,索引器

这是只读属性的更易读的形式(没有getreturn

public string Id
{
    get
    {
         return ConfigurationManager.AppSettings["Id"];
    }
}   

第二个是通常的分配,初始化Id字段

答案 1 :(得分:2)

public string Id => ConfigurationManager.AppSettings["Id"]; 

这不是lambda表达式,而是表达式的属性。每当调用属性的getter时,都会读取AppSetting。

public string Id = ConfigurationManager.AppSettings["Id"]; 

这只是声明一个公共字段,并在构造实例时对其进行一次初始化。此时只会读取AppSetting值。

相关问题