Option Base 1 的问题

类别:.NET开发 点击:0 评论:0 推荐:

假设用 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 确实兼容性不好 :(

本文地址:http://com.8s8s.com/it/it44545.htm