(注意代码是示例)
我有以下语法:
SomeMethod(() => x.Something)
表达式中的第一个括号是什么意思?
我也很好奇如何从传入的参数中获取属性名称。这可能吗?
最佳答案
What do the first brackets mean in the expression?
这是不带参数的方法的 lambda 语法。如果它采用 1 个参数,它将是:
SomeMethod(x => x.Something);
如果它有 n + 1 个参数,那么它会是:
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?
如果您的 SomeMethod
需要 Expression<Func<T>>
,然后是:
void SomeMethod<T>(Expression<Func<T>> e) {
MemberExpression op = (MemberExpression)e.Body;
Console.WriteLine(op.Member.Name);
}
关于c# - SomeMethod(() => x.Something) 在 C# 中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1370236/