You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.Net中如何以字符串变量内的内容作为变量名创建变量?

在VB.Net中用字符串动态创建变量的实现方案

嘿,这个问题我太熟悉了!VB.Net作为静态类型语言,没法直接像Python这类动态语言那样,用字符串直接创建普通的局部变量,但咱们有几个非常实用的替代方案,完全能满足你的需求,我给你详细说说:

方案一:用Dictionary存储(最推荐,简单高效)

这是最常用的方式,把字典的键当作动态的变量名,值就是变量的内容,操作起来特别直观:

' 初始化一个字典,用来存放你的"动态变量"
Dim dynamicVariables As New Dictionary(Of String, String)()
Dim varA As String = "varValue"

' 把字符串varA的内容作为键,赋值对应的变量值
dynamicVariables(varA) = "这是动态命名变量的内容"

' 调用的时候直接用键名访问,就像用变量一样
Console.WriteLine(dynamicVariables("varValue")) ' 输出:这是动态命名变量的内容

这个方案的优势是性能好、类型安全,编译时就能做检查,绝大多数场景都适用。

方案二:用ExpandoObject(贴近变量语法)

如果你想要更接近普通变量的调用语法,可以用ExpandoObject,它属于动态类型,需要导入System.Dynamic命名空间:

Imports System.Dynamic

Dim varA As String = "varValue"
' 创建动态对象
Dim dynamicObj As ExpandoObject = New ExpandoObject()
' 把动态对象转成字典来添加成员
Dim dynamicDict As IDictionary(Of String, Object) = dynamicObj

' 添加动态"变量"
dynamicDict(varA) = "用ExpandoObject实现的动态变量"

' 直接像访问普通变量一样调用
Console.WriteLine(dynamicObj.varValue) ' 输出:用ExpandoObject实现的动态变量

注意哦,这个是动态类型,编译时不会做类型检查,运行时才会解析,适合需要灵活语法的场景。

方案三:用反射给类动态添加成员(特殊场景用)

如果你的需求是给某个类动态添加成员变量(不是局部变量),可以用反射来实现:

Imports System.Reflection

' 先定义一个空类,用来承载动态成员
Public Class DynamicClass
    ' 初始无成员,后续动态添加
End Class

Sub Main()
    Dim varA As String = "varValue"
    Dim classInstance As New DynamicClass()
    
    ' 获取类的类型,尝试获取指定名称的字段
    Dim fieldInfo As FieldInfo = classInstance.GetType().GetField(varA, BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.NonPublic)
    ' 如果字段不存在,就动态创建一个公共的字符串类型字段
    If fieldInfo Is Nothing Then
        fieldInfo = classInstance.GetType().DefineField(varA, GetType(String), FieldAttributes.Public)
    End If
    
    ' 给这个动态字段赋值
    fieldInfo.SetValue(classInstance, "通过反射添加的类成员变量")
    
    ' 获取字段值并输出
    Console.WriteLine(fieldInfo.GetValue(classInstance)) ' 输出:通过反射添加的类成员变量
End Sub

反射的性能相对差一些,而且写法繁琐,一般只在必须给类动态扩展成员的特殊场景下使用。

总的来说,优先选Dictionary方案,简单又靠谱;想要变量式语法就用ExpandoObject;反射只在特定需求下考虑~

内容的提问来源于stack exchange,提问作者Alberto Muñoz Sánchez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:18:09