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

时间:2012-02-04 10:20:08

标签: c# vb.net vb6

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

First 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),也许它与此有关?

2 个答案:

答案 0 :(得分:2)

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

sdkError = sdkEntry.ValidateLine(ref valArray);

(现在还不清楚你是如何调用VB DLL的。)

答案 1 :(得分:0)

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

尝试将C#交换到此:

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