Iawfy_ 2021-12-10 10:24 采纳率: 50%
浏览 39

c#MethodInfo转换成EventHandler失败

反射获取出来的方法转成EventHandler

       private void Form1_Load(object sender, EventArgs e)
        { 
            //var intance = Activator.CreateInstance(typeof(Form1)) as Form1;  
            object target = this;   
            MethodInfo inf = typeof(TestClass).GetMethod("btnTest_Click", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
            Delegate del = Delegate.CreateDelegate(typeof(EventHandler), target, inf);    
            EventHandler myMethod = del as EventHandler;
            button1.Click += myMethod; 
        }

    public class TestClass
    {
        public string GetValue(string value)
        {
            return value;
        }

        private void btnTest_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            Random r = new Random();
            btn.Text = r.Next(1, 15).ToString();
        }
    }

报错 “System.ArgumentException”类型的未经处理的异常在 mscorlib.dll 中发生

其他信息: 无法绑定到目标方法,因其签名或安全透明度与委托类型的签名或安全透明度不兼容。

  • 写回答

1条回答 默认 最新

  • 於黾 2021-12-10 10:32
    关注

    myMethod 是个事件句柄,不是回调函数,你怎么能加到click里面去呢
    inf才是函数啊
    总之你这逻辑看起来怪怪的,总感觉哪里不对

    评论

报告相同问题?

问题事件

  • 创建了问题 12月10日

悬赏问题

  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!
  • ¥15 这个如何解决详细步骤