我正在尝试创建一个函数来解析多维Array
中的所有值,除了给定一个维度之外的所有值。细节不相关,但对于此功能,我需要返回包含原始多维Array
所具有的相同类型值的一维Array
。
要将任何维度Array
传递给我的函数,我将此参数的类型声明为Array
。但是,如何创建该特定类型的新Array
(例如Integer
)?
目前我有以下代码:
Function GetRow(ByVal arr As Array) As Array
Dim result As (...) 'This should be Integer() if arr contains Integers, etc.
Return result
End Function
如何声明result
的类型,使其具有与arr
相同类型的值? New Array
是不可能的,因为它被声明为MustInherit
。
答案 0 :(得分:4)
在此处使用泛型,以便该函数可以处理任何类型:
Function GetRow(Of T)(ByVal arr() As T) As T()
Dim result() As T
ReDim result(arr.Length - 1)
Array.Copy(arr, result, arr.Length)
Return result
End Function
样本用法:
Dim iarr() As Integer = {1, 2, 3, 4}
Dim copy = GetRow(iarr)