我知道我不能动态引用变量(例如“var & var.Close()”)。 我能否以某种方式拥有一个可以按名称指向另一个变量的变量?
我当前的代码是(其中 func() 需要一个数组):
Dim playerNum As String = “P1”
Select Case playerNum
Case “P1”
Func(P1(x, xx))
Case “P2”
Func(P2(x, xx))
.........
End Select
可以按照这些思路做些什么吗?
Dim playerNum As varNameRef = P1(,)
Func(playerNum(x, xx))
如果能停止如此多的重复,我们将不胜感激。 干杯。
最佳答案
你需要的是引用类型(类),而不是值类型(结构)。例如,如果您创建了一个将数组存储为属性的类,如下所示:
Public Class PlayerData
Public Data(10, 30) As Object
End Class
这还为您提供了轻松扩展存储的每个玩家数据的优势。然后,您可以使用多个变量引用同一个 PlayerData
对象:
Dim player1 As New PlayerData()
Dim player2 As New PlayerData()
Dim player As PlayerData = Nothing
Select Case playerNum
Case “P1”
player = player1
Case “P2”
player = player2
End Select
Func(player.Data(x, xx))
但是,将它们作为键值对存储在字典中会更好,例如:
Dim players As New Dictionary(Of String, PlayerData)()
players("P1") = New PlayerData()
players("P2") = New PlayerData()
然后,您可以像这样访问您的玩家:
Func(players(playerNum).Data(x, xx))
关于VB.NET 引用/指向一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11541720/