方法增加没有类型的数组参数



我试图创建一个方法来执行增量和值赋值操作,就像这样:

Public Sub ArrayAdd(ByRef arr As Object(), newItem As Object)
Try
If IsNothing(arr) Then
arr = New Object() {newItem}
Exit Sub
End If
Array.Resize(arr, arr.Length + 1)
arr(arr.Length - 1) = newItem
Catch ex As Exception
Throw New ApplicationException(ex.Message, ex)
End Try
End Sub`

使用这种方法会产生类型转换错误,所以我想使用泛型Of T(没有成功)。

泛型方法的工作方式完全符合您的期望:

Public Sub AppendElement(Of T)(ByRef array As T(), element As T)
If array Is Nothing Then
array = {element}
Else
Dim upperBound = array.Length
System.Array.Resize(array, upperBound + 1)
array(upperBound) = element
End If
End Sub

方法实现

Public Sub ArrayAdd(Of T)(ByRef arr() As T, item As T)
Try
If IsNothing(arr) Then
arr = New T() {item}
Exit Sub
End If
Array.Resize(arr, arr.Length + 1)
arr(arr.Length - 1) = item
Catch ex As Exception
Throw New ApplicationException(ex.Message, ex)
End Try
End Sub