通过变量名引用值

时间:2015-05-12 15:47:52

标签: vb.net variables

是否可以通过引用变量的名称来获取变量的内容。 我有一堆像

这样的变量
Dim _tipoEntero As String = "^[0-9].$"
Dim _tipoTelefono As String = "^[0-9]{6}$"

我试图像

那样引用
myValue = GetVariableValue("_tipo" + validationString)

2 个答案:

答案 0 :(得分:3)

您可以使用Dictionary

    Dim tipos As New Dictionary(Of String, String)

    tipos.Add("Entero", "^[0-9].$")
    tipos.Add("Telefono", "^[0-9]{6}$")

    myValue = tipo(validationString)

答案 1 :(得分:0)

你问题的简短回答是"是"有可能:

myValue = Me.GetType.GetField("_tipo" & validationString).GetValue(Me)

我们可以提高效率:

myValue = Me.GetType.GetField("_tipo" & validationString, Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public Or Reflection.BindingFlags.IgnoreCase).GetValue(Me)

我设置绑定标志以捕获公共变量和私有变量,并忽略搜索的大小写敏感,因此输入" _tipo"并不重要。或" _TiPo"。

这是您的问题的答案,但我并没有建议您更好地完成任务。