我正在尝试将数组传递给 Sub,以便 Sub 可以修改数组的值之一。
像这样的东西
Dim a As String = "STARTVALUE"
PopulateDataSet("Management", {a})
Public Sub PopulateDataSet(ByRef SomeRandomOtherVariable As String, ByRef ToBePopulatedVariables() As String)
ToBePopulatedVariables(0) = "TheNewValue"
End Sub
当我运行代码时,我可以单步执行 Sub 并查看 ToBePopulatedVariables(0)(即变量 A)的值“STARTVALUE”,然后该值更改为“TheNewValue”。
但是,当控制权被传递回调用代码时,a 的值将恢复为“STARTVALUE”。
我已经尝试了我能想到的一切。有任何想法吗?
@karl-anderson 和 Nadeem_MK 都提出了同样的建议。
但
Dim a As String()
a(0) = "FirstVariable"
PopulateDataSet("Management", {a})
返回“对象引用未设置为对象的实例。”
将值分配给 a(0) 时
然而
Dim a As String() = {"FirstVariable"}
运行。
但是我仍然坚持没有将新值返回给调用代码。我试过这样做 ByVal 和 ByRef 但对于数组我认为这并不重要。——</p>