在没有类型的情况下递增数组参数的方法

Method to increment array parameter without types

我正在尝试创建一个方法来执行递增和赋值操作,如下所示:

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