请问如何使“+”运算符超载,以便于简单的数组加入?
我们如何定义扩展以简化此操作,如下所示:
Dim a = {1, 2}
Dim b = {3, 4}
Dim c = a + b ' should give {1, 2, 3, 4}
我收到以下错误:
'Error BC30452 Operator '+' is not defined for types 'Integer()' and 'Integer()'
答案 0 :(得分:1)
重复Overloading the + operator to add two arrays。
因此,由于这是不可能的(除了使用扩展),您可以使用LINQ来使用这个简单的解决方法:
Dim c = a.Concat(b).ToArray()
这是一个扩展的可能实现,它使用数组和列表作为输入,并且比LINQ方法更有效:
<System.Runtime.CompilerServices.Extension()> _
Public Function Plus(Of t)(items1 As IList(Of T), items2 As IList(Of T)) As T()
Dim resultArray(items1.Count + items2.Count - 1) As t
For i As Int32 = 0 To items1.Count - 1
resultArray(i) = items1(i)
Next
For i As Int32 = 0 To items2.Count - 1
resultArray(i + items1.Count) = items2(i)
Next
Return resultArray
End Function
您可以这样使用它:
Dim a = {1, 2}
Dim b = {3, 4}
Dim c = a.Plus(b)