Expression-bodied function members efficiency and performance in C# 6.0

怎甘沉沦 提交于 2019-12-17 05:03:24

问题


In a new C# 6.0 we can define methods and properties using lambda expressions.

For instance this property

public string Name { get { return First + " " + Last; } }

can be now defined as follows:

public string Name => First + " " + Last; 

The information about expression-boided function members you can find here: http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx

Does anyone know if there's any overhead when using new syntax? Can it slow down (or improve efficiency of) the application or maybe it doesn't matter?


回答1:


In a new C# 6.0 we can define methods and properties using lambda expressions.

No, you can't. You can define method and property bodies using syntax which looks like a lambda expression, in that it uses the token =>.

However, importantly this does not mean that there's a delegate type involved. (Whereas a lambda expression is only permitted in a context where it's converted to an expression tree or delegate type.)

This is purely syntactic sugar. Your two example code snippets will compile to the exact same IL. It's just a different way of representing the body of a property getter or method.




回答2:


They will compile down to the same IL, you can always test this yourself by doing it and using ildasm to extract the IL.



来源:https://stackoverflow.com/questions/28411335/expression-bodied-function-members-efficiency-and-performance-in-c-sharp-6-0

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!