在新的C#6.0中,我们可以使用lambda表达式定义方法和属性。
例如这个属性
public string Name { get { return First + " " + Last; } }
现在可以定义如下:
public string Name => First + " " + Last;
您可以在此处找到有关表达式功能成员的信息:http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx
有没有人知道使用新语法时是否有任何开销?它可以减慢(或提高效率)应用程序,或者可能没关系?
答案 0 :(得分:72)
在新的C#6.0中,我们可以使用lambda表达式定义方法和属性。
不,你不能。您可以使用看起来像=>
。
然而,重要的是,不意味着涉及委托类型。 (而lambda表达式只允许在它转换为表达式树或委托类型的上下文中。)
这纯粹是语法糖。您的两个示例代码段将编译为完全相同的IL。它只是表示属性获取器或方法的主体的不同方式。
答案 1 :(得分:8)
他们将编译成相同的IL,你可以自己测试它,并使用ildasm来提取IL。