如何使用相同的参数调用在C#中定义的函数,返回类型和相同的名称,但在不同的情况下调用VB.NET项目

我有一个用C#编译的类项目a.dll.它包含以下代码.
public class MyClass{
    public int Add(int i,int j)
    {
      return (i+j);
    }

    public int add(int i,int j)
    {
      return (i+j)*2;
    }
}

从C#项目中我可以像这样调用这些函数

public class MyOtherClass{
 MyClass mcls=new MyClass();
 mcls.Add(1,2);
 mcls.add(2.3);
}

但是如何从VB.Net项目中调用它呢?我现在无法使用Visual Studio.因此,如果有人提供答案,那将非常有帮助.

编辑1

我有一个VB.NET项目,我需要添加一个C#dll的引用(比如说dll包含MyClass).所以我可以调用两个方法(Add(int,int),add(int,int)).但在VB.NET中,这是区分大小写的.有没有办法实现这个目标?

编辑2

假设我添加了对dll的引用,因此我可以调用这些函数.

Dim myObj as New MyClass
myObj.Add(1,2)
myObj.add(1,2)

如果此代码有效,编译器如何识别正确的函数

解决方法

你最好的选择是在这里使用反射 – VB根本无法确定你正在调用哪个函数,因为在VB中’add’与’Add’相同.

这是我测试它所做的(我不确定你需要在哪里组合’BindingFlags’):

Dim mcls As New [MyClass]
Dim t As Type = mcls.GetType()
Dim x = t.InvokeMember("add",BindingFlags.DeclaredOnly Or BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.InvokeMethod,nothing,mcls,New Object() {1,2})
Dim y = t.InvokeMember("Add",2})

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...