在此示例中,我要问的是lambda表达式和等号之间有什么区别:
public string Id => ConfigurationManager.AppSettings["Id"];
并且:
public string Id = ConfigurationManager.AppSettings["Id"];
还是没有区别?
答案 0 :(得分:3)
第一个语句不是lambda,而是expression-body definition(从C#6开始有效)
public string Id => ConfigurationManager.AppSettings["Id"];
您可以按照specs
将其应用于方法,属性,索引器这是只读属性的更易读的形式(没有get
和return
)
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值。