VB.NET 引用/指向一个变量

标签 vb.net class variables

我知道我不能动态引用变量(例如“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/

相关文章:

vb.net - 如何在 VB.NET 中引发异常

python - 执行父类方法而不调用super()

java - 为什么直接给按钮添加监听器称为内部类呢?

javascript - JavaScript 变量的值可以在同一个函数中更改两次吗?

告诉你直线斜率的 Python 程序

html - 将包含图像的 RTF 文件转换为 HTML

vb.net - ASPX 脚本中用户定义的命名空间在服务器上运行

regex - 基于正则表达式匹配提取SubString

c++ - 如何在 switch 语句中声明一个全局对象

c# - 通过事件传递变量 C#