С массивами все строго типизировано, поэтому передавать в одном параметре разные типы как с числовыми переменными не получится.
Как варианты , можно:
1) Использовать перегрузку функций
Код
sub A overload(bArray() as byte)
? "Array Byte"
for i as Long = 0 to Ubound(bArray)
? bArray(i)
Next
End Sub
sub A overload(dArray() as Double)
? "Array Double"
for i as Long = 0 to Ubound(dArray)
? dArray(i)
Next
End Sub
dim as Byte bArray(2) = {1,2,3}
dim as Double dArray(3) = {0.0757,0.2324,1.4846235 , 456.23455}
A(bArray())
A(dArray())
Sleep
2) Передавать по указателю
Код
sub A(pArray as any ptr , bType as Byte , iSize as Long)
if bType = 1 then
? "Array Byte , size="; iSize
for i as Long = 0 to iSize - 1
? cast(byte ptr , pArray)[i]
Next
elseif bType = 2 then
? "Array Double , size="; iSize
for i as Long = 0 to iSize - 1
? cast(double ptr , pArray)[i]
Next
EndIf
End Sub
dim as Byte bArray(2) = {1,2,3}
dim as Double dArray(3) = {0.0757,0.2324,1.4846235 , 456.23455}
A(@bArray(0),1,3)
A(@dArray(0),2,4)
Sleep