0

可能重复:
从方法引用 C# 中获取方法信息

这很可能是一些简单的事情,但到目前为止我还没有想出任何关于如何做到这一点的事情。

我希望能够以两种不同的方式获取方法的名称。请注意我想要一个方法名称,而不是属性名称。

1)在一个类里面ClassA<T>,看起来像:

var name = GetMethodName(x => x.MethodA);

2)在课堂之外,看起来像:

var name = GetMethodName<ClassA<object>>(x => x.MethodA);
var name = GetMethodName<ClassB>(x => x.MethodB);

我该怎么做呢?

谢谢!

4

1 回答 1

1

您不需要 lambdas (x => x.MethodA等)。这只是混淆了问题(并隐藏了感兴趣的方法:该MethodA位将从您的GetMethodName方法中隐藏)。

相反,您可以使用反射来获取一个MethodInfo对象,然后该对象具有一个Name属性。

例如:

MethodInfo sm = typeof(SomeClass).GetMethod("SomeMethod");
string methodName = sm.Name;

这里methodName将是字符串"SomeMethod"。(当然,在这个简单的例子中,我们使用类名来获取MethodInfo对象,所以它有点循环,我们还不如直接使用硬编码"SomeMethod"字符串!)

于 2012-10-14T17:13:22.543 回答