我有一个vb.net应用程序,我想用它来调用以类对象集合为参数的c#函数。我曾尝试在vb.net应用程序中构造具有相同结构的类,并声明一个对象列表,以数据填充它们并将它们传递给c#类,但出现对话错误
地址类别的列表不能转换为地址类别的列表
有可能实现这一目标吗?如果是这样,那怎么办?
函数是:
public static string callMain(List<AddressClass[]> Addresses)
{
// code.......
}
答案 0 :(得分:1)
您不需要重复任何类。 .NET Framework的全部优点是语言的可互换性。只需使用C#函数使用的AddressClass
定义。如果C#项目是VB中的一个引用,则您的VB代码将识别它。
例如如果C#项目的命名空间为My.CSharp.Project
,则在VB中,您只能Dim list As new List(Of My.CSharp.Project.AddressClass)
。
基本上,就像对待其他任何库一样对待C#类。您不知道或不在乎System.IO类使用哪种语言编写,是吗?您只需要使用它们。您的C#项目也是如此。实际上,如果您将C#项目编译为DLL并将其手动导入到VB.NET项目中,则您甚至不必知道它是C#项目-那时您所拥有的只是一个编译后的二进制文件