0

有一个奇怪的,我知道这很愚蠢,但我什么都看不到!

我在 VB.net 中创建了一个 DLL(不,我无法更改它!:-))并从 C# 调用它。问题出现在对象是在 C# 中创建的时候,我收到消息说它有“一些无效的参数”。

DLL中的构造函数代码如下:

Sub New(ByRef Connection As IConnection)

C#中的代码是:

IConnection conn = new Connection();  
CustomObject test = new CustomObject(conn)

它对第一行很满意,但它在第二行给出了错误消息(“一些无效参数”)。

我还在 VB.net 中创建了一个辅助项目并调用了 DLL,它在那里工作正常。

我究竟做错了什么?

提前致谢,

安迪

4

2 回答 2

2

在 C# 中,如果参数是“ByRef”,则必须在调用函数时指定它

CustomObject test = new CustomObject(ref conn);
于 2011-04-19T08:52:03.060 回答
0

几天前我遇到了类似的问题,所以我可以帮助解决这个问题。我是新手,但在我的项目中我有同样的问题(不是错误)。

是的,您可以在 C#.NET 项目中使用通过 VB.NET 构建的 DLL。如果您有一个 VB.NET dll,您可以在 C#.NET 中使用它而无需任何更改。但有时,您需要注意平台选项。

.NET 中有以下两个重要特性:

  1. 编译生成IL(中间语言)代码。所有 .NET 语言在编译时生成 IL,由 JIT(即时)编译器编译。

  2. 这些语言都使用通用类型系统 (CTS) 并在相同的通用语言运行时 (CLR)上运行。目标是生成易于互操作的代码。

所以,DLL 没有问题。您的错误可能是其他原因,我对此一无所知。

希望这可以帮助。

于 2011-04-19T09:04:12.043 回答