C# / VB.Net 问题:VB.Net 填充字符串数组,但 C# 不填充

发布于 2025-01-02 00:20:09 字数 463 浏览 0 评论 0原文

我正在使用引用的 VB6 DLL。问题在于方法/函数调用的结果不相同。下面是代码示例:

首先VB.Net

Dim Validations() As String
myErr = myEntry.ValidateLine(Validations)

当验证失败时,字符串数组Validations 会填充错误描述字符串。我尝试在 C# 中完成相同的任务:

private string[] valArray = null;
sdkError = sdkEntry.ValidateLine(valArray);

有人知道为什么我无法让 C# 填充字符串数组吗?

另外,VB中的函数是通过引用System.Array ...

ValidateLine(ref System.Array ValErrors)来调用的,也许它与此有关?

I'm working with referenced VB6 DLL's. The problem is that the results of a method/function call are not the same. Below the code examples:

First VB.Net

Dim Validations() As String
myErr = myEntry.ValidateLine(Validations)

When validation fails, the string array Validations is filled with the error description string. I've tried to accomplish the same in C#:

private string[] valArray = null;
sdkError = sdkEntry.ValidateLine(valArray);

Does anyone have an idea why I can't get C# to fill the string array?

Additionally, the function in VB is called with ref to a System.Array ...

ValidateLine(ref System.Array ValErrors), perhaps it has something to do with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

杀お生予夺 2025-01-09 00:20:09

我的猜测是 VB 通过引用隐式传递变量。您可以尝试在 C# 中执行相同的操作:(

sdkError = sdkEntry.ValidateLine(ref valArray);

请注意,目前还不清楚如何调用 VB DLL。)

My guess is that VB is implicitly passing your variable by reference. You could try doing the same thing in C#:

sdkError = sdkEntry.ValidateLine(ref valArray);

(It's not immediately clear how you're invoking the VB DLL, mind you.)

盛夏尉蓝 2025-01-09 00:20:09

您的 VB 创建空数组,您的 C# 创建空数组。我猜测 VB dll 需要一个非空值。

尝试将您的 C# 替换为:

private string[] valArray = new string[]{};

Your VB creates and empty array, your C# creates a null array. I'm guessing the VB dll needs a non null value.

Try swapping your C# to this:

private string[] valArray = new string[]{};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文