Assume that COM written with VB6 has such a way.
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 GetRDERDERS = V End Function
If you call to C #, you can only pass Array Cast.
BLLIB.BLLORDERSCLASS C = new blllib.bllordersclass (); // Object [] o = (object []) c.getorders (); system.Array arr = (array) c.getRDERS ();
Object [] kk = (Object []) c.getorders (); // This conversion will fail.
If Option Base 0 does not have a similar problem.
It seems that Option Base 1 is really compatible: (