如何以强类型方式动态获取特定方法的名称?

Mat*_*ell 3 c# vb.net reflection

我有点不确定如何将标题写入这个问题,但我正在寻找VB.NET中的最短/最终方式(或C#,但目前使用VB.NET)来获取方法的字符串值在方法调用时动态命名.

例如,我有一个这样的类:

Public Class Blah
    Public Sub Foo()
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

现在,Foo是动态设置的强类型封面,我有一个事件处理程序,当设置更改时将触发该事件处理程序,并返回更改的设置的字符串名称.

我希望能够在这个字符串上切换/选择一个基于Foo()方法的案例.为此,我需要能够从方法调用本身获取Foo方法的字符串名称(即以某种方式GetMethodName(blahInstance.Foo())).

Blu*_*kMN 7

我目前没有方便的VB.NET,但在C#中,我认为这就是答案.这看起来和你想要的一样吗?如果是这样,VB.NET语法应该相对简单:

     Blah blahInstance = new Blah();
     System.Action fooFunc = blahInstance.Foo;
     Console.WriteLine(fooFunc.Method.Name);
Run Code Online (Sandbox Code Playgroud)