我正在使用引用的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),也许它与此有关?
答案 0 :(得分:2)
我的猜测是VB通过引用隐式传递你的变量。您可以尝试在C#中执行相同的操作:
sdkError = sdkEntry.ValidateLine(ref valArray);
(现在还不清楚你是如何调用VB DLL的。)
答案 1 :(得分:0)
你的VB创建并清空数组,你的C#创建一个空数组。我猜测VB dll需要非空值。
尝试将C#交换到此:
private string[] valArray = new string[]{};