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?
Expression-bodied members provide a minimal and concise syntax to define properties and methods. It helps to eliminate boilerplate code and helps writing code that is more readable. The expression-bodied syntax can be used when a member's body consists only of one expression.
An expression-bodied method consists of a single expression that returns a value whose type matches the method's return type, or, for methods that return void , that performs some operation.
The Syntax of expression body definition is, member => expression; where expression should be a valid expression and member can be any from above list of type members.
Yes, you can.
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.
They will compile down to the same IL, you can always test this yourself by doing it and using ildasm to extract the IL.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With