What does SomeMethod(() => x.Something) mean in C#

c#, lambda

Solution

What do the first brackets mean in the expression?

It's the lambda syntax for a method that takes no parameters. If it took 1 parameter, it'd be:

SomeMethod(x => x.Something);

If it took n + 1 arguments, then it'd be:

SomeMethod((x, y, ...) => x.Something);

I'm also curious how you can get the property name from argument that is being passed in. Is this possible?

If your `SomeMethod` takes an `Expression<Func<T>>`, then yes:

void SomeMethod<T>(Expression<Func<T>> e) {
    MemberExpression op = (MemberExpression)e.Body;
    Console.WriteLine(op.Member.Name);
}

Problem

(Note the code is an example) I have the following syntax: ``` SomeMethod(() => x.Something) ``` What do the first brackets mean in the expression? I'm also curious how you can get the property name from argument that is being passed in. Is this posssible?

Original source

Related problems