使用字符串引用变量

时间:2015-05-04 21:00:27

标签: vb.net variables basic refer

我有一些变量叫做:_2sVal,_3sVal,_4sVal等 我想通过循环改变它们的每个值。 像:

For i = 1 To 10
    'set the value
Next

我已经尝试将它们放在如下字典中:

Dim varDict As New Dictionary(Of String, Integer)
varDict.Add("2sVal", _2sVal)
varDict.Add("3sVal", _3sVal)
varDict.Add("4sVal", _4sVal)

我可以使用

检索值
MsgBox(varDict(i.ToString & "sVal"))

但是当我尝试改变它时

varDict(i.ToString & "sVal") = 5

它没有做任何事情。没有错误或例外,只是值保持不变

1 个答案:

答案 0 :(得分:1)

使用时

varDict.Add("4sVal", _4sVal)

您没有将_4sVal变量放在字典中,而是放在它的值中。

然后,更改字典不会更改_4sVal,因为字典中没有引用它。

我的意思是

varDict("4sVal") = 5

将更改字典的值,但不会更改变量_4sVal本身。

我认为正确的做法是将变量定义为Properties,定义如下:

Property _4sVal As Integer
    Get
        Return varDict("4sVal")
    End Get
    Set(value As Integer)
        varDict("4sVal") = value
    End Set
End Property

这样您就不必更改其余代码中的任何内容。它将是透明的。