c# - 如何通过名称获取方法处理程序? (C#)

标签 c# reflection methods delegates handler

请查看下面的代码以了解我的问题:

public class MyClass
{
  public delegate object MyDelegate(object value); 

  public MyDelegate GetMethodByName(string methodName)
  {
     // What have to be here?
  }

  public object Method1(object value)
  {
     // some code here
  }

  public object Method2(object value)
  {
     // some code here
  }

  public object Method3(object value)
  {
     // some code here
  }
}

在某处:

var obj = new MyClass();
MyDelegate del = obj.GetMethodByName("Method1");
var result = del(someobject);

那么如何通过名称获取方法处理程序呢? (c#)

最佳答案

var obj = new MyClass();
MyDelegate del = (MyDelegate)Delegate.CreateDelegate(typeof(MyDelegate), obj.GetType().GetMethod("Method1"));
var result = del(someobject);

关于c# - 如何通过名称获取方法处理程序? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120388/

相关文章:

c# - 如何使用NLog登录到Amazon ElasticSearch?

java - 为什么 getmethod 返回 null 即使该方法存在

java - 如何拥有必须至少运行一次的 public void 方法

c# - 传入字典的模型项在 ASP.net MVC 中属于“System.Collections.Generic.List...”类型

c# - 是否有用于将具有随机列顺序的 CSV 映射到已定义属性的代码模式?

c# - WinForm 中的日期时间选择器 如何选择时间?

reflection - 如何在接口(interface) slice 上设置结构变量的值?

java - 是否可以使用Java反射或各种技术来检查一个类是否有父类?

java - 让继承类实现父类(super class)的方法

ruby - 在 Ruby 中调用多个对象的方法很酷吗?