首页 > 解决方案 > 模糊输入系统.反射

问题描述

通过 system.reflection 解析方法时出现错误:

System.Reflection.AmbiguousMatchException

typeof(Graphics).GetMethod("DrawRectangle").Invoke(g, new object[] {
     Pens.Red, new Rectangle(200, 200, 100, 50)
});

但是当我通过编译器解析它时它工作得很好

g.DrawRectangle(Pens.Red, new Rectangle(200,200,100,50));

有没有办法指定我要调用的方法?

标签: c#reflectionsystem.reflection

解决方案


Graphics.DrawRectangle有 3 种不同的重载,因此仅通过名称无法找到具体的重载,您可以在调用GetMethod中指定所需重载的参数类型:GetMethod

typeof(Graphics).GetMethod("DrawRectangle", new[] {typeof(Pen), typeof(Rectangle)})

推荐阅读