You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现无类型约束的数组参数扩容方法相关问题咨询

泛型版本数组扩容添加元素实现方案

你原有的实现只能接收Object()类型的数组,当传入具体类型(如Integer()、String())的数组时,会触发类型不匹配的转换错误,改用泛型可以让方法适配任意类型的数组,避免类型转换问题。

正确实现代码

Public Sub ArrayAdd(Of T)(ByRef arr As T(), newItem As T)
    Try
        If IsNothing(arr) Then
            arr = New T() {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

调用示例

' 初始化空字符串数组
Dim strArr As String() = Nothing
' 添加元素,编译器可自动推断泛型类型无需手动指定
ArrayAdd(strArr, "第一条数据")
ArrayAdd(strArr, "第二条数据")

' 对值类型数组同样生效
Dim intArr As Integer() = {1,2,3}
ArrayAdd(intArr, 4)
' 执行后intArr内容为 {1,2,3,4}

说明

  • 泛型参数Of T会根据你传入的数组类型自动匹配,全程不会发生强制类型转换,从根源上解决类型报错问题
  • 逻辑和你原有实现完全一致,仅替换了固定的Object类型为动态泛型类型,完全符合你原有的功能需求

内容的提问来源于stack exchange,提问作者andrea.bignardi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:39:02