我写了一个类,我想返回我在类中实现的函数的名称。
public class cls
{
public static string fun()
{
//code
}
}
我只想知道如何知道函数的名称(fun
),而不知道该函数的返回值。
答案 0 :(得分:4)
public static void TraceContext(string messageFormat)
{
Trace.WriteLine(string.Format(messageFormat,
new System.Diagnostics.StackFrame(1).GetMethod().Name));
}
答案 1 :(得分:3)
答案 2 :(得分:1)
您可以使用反射来执行此操作
typeof(Messages).GetMethods(BindingFlags.Instance | BindingFlags.Public)
.Select(m=>m.Name)
.ToArray()
答案 3 :(得分:1)
对于你问题中的情况,这将有效:
var methods = typeof (Messages).GetMethods(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static);
foreach(var method in methods)
{
Console.WriteLine(method.Name);
}
如果您需要其他数据(例如,来自父类的继承方法),则需要BindingFlags的其他组合。
答案 4 :(得分:0)
在任何情况下,您所使用的功能都包含在Reflection命名空间中。
没有违法行为,但根据你的描述如何措辞,我将假设没有反思的先验知识,在这种情况下我推荐以下introductory tutorial