两个方法返回不同的类型没有参数,如何调用

本文关键字:参数 何调用 调用 两个 方法 返回 类型 | 更新日期: 2023-09-27 18:01:03

有一些.net Dll库,这个Dll包含一个具有两个同名方法的类,例如:

void b()
{
}
bool b()
{
}

这在C#中是不可能的,但在内部似乎是可以的,当添加这样的库时,我如何从代码中调用一个方法?

我需要最简单的方法,我知道使用反射是可以的,但还有其他更简单的方法吗?

*编辑*

我在图书馆的元数据中得到了这个:

#region Assembly XXXX.dll, v xxxx
// C:'....................
#endregion

namespace XXXX.YYYYY
{
    public class a : IDisposable
    {
        .
        .
        .
        .
        .
        public void b();
        public bool b();
        .
        .
        .
        .
        public void Dispose();
    }
}

两个方法返回不同的类型没有参数,如何调用

哦,太可怕了。从C#调用它的唯一方法是通过反射;您可能需要使用GetMethods()并从数组中找到您想要的(GetMethod()重载可能不喜欢这样(。

一旦您有了MethodInfo,您可以只使用Invoke,也可以使用Delegate.CreateDelegate来获得可以重用的类型化委托。这取决于你多久打一次电话,以及哪一个更可取。