Option Base 1 的问题

假设用 VB6 写的COM有这样的一个方法。

Option Base 1

Public Function GetOrders() As Variant

Dim v As Variant
ReDim v(5)
Dim i As Integer
For i = 1 To 5
v(i) = "Order " & Rnd() * 300
Next
GetOrders = v

End Function

到 C# 中调用的话, 只能通过Array 来cast。

BllLib.BLLOrdersClass c=new BllLib.BLLOrdersClass();
//Object [] o=(Object [])c.GetOrders();
System.Array arr=(Array)c.GetOrders();

object [] kk=(object [])c.GetOrders() ; // 这个转换会失败的。

如果 Option Base 0 则没有类似的问题。

看来 Option base 1 确实兼容性不好 :(

Published At
Categories with Web编程
Tagged with
comments powered by Disqus