In C#, are lambda expressions objects? If so, what sort of object are they?
Lambda expressions themselves only exist in source code. They don't have a type themselves, which is why the compiler always insists they're convert to a specific type.
That's why this code doesn't compile:
// No idea what type to convert to!
object x = y => y.Length;
But this does:
Func<string, int> x = y => y.Length;
Lambda expressions are always converted to either a delegate type or an expression tree type. Similarly, anonymous methods are always converted to a delegate type.
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