我试图在运行时创建对象后在类中创建新变量。问题是我事先不知道变量名或值,所以我必须在运行时创建新变量。
例如 -
Public Class Test
Public Sub Test()
End Sub
Public Function Fval(ByVal Field As Object) As Object
Return Field(1)
End Function
End Class
''Creating the object of Test class
Public Class ExecTest
Public Sub Main(ByVal args() As String)
Dim obj as New Test()
Dim des As ScriptControlClass = New ScriptControlClass()
des.Language = "VBScript"
des.AddObject("TS", obj, True)
Dim xx as Object = des.Eval("Fval(ABC)")
End Sub
End Class
编辑:
这是对我的代码的更详细的解释。如果你在Eval函数中观察到我试图评估Fval(abc)
。现在,对象数组abc
未在Test类中声明,因为它的存在事先是未知的。我想要做的是创建一个长度为2的对象数组abc
并用一些值填充它,当调用Fval(abc)
时,那么索引1的值应该是{{1}的返回值功能。
答案 0 :(得分:3)
创建类型后,无法在.NET中向类型添加任何内容。一种类型确实是固定的 您可以在运行时创建一个继承自Test的新类型,但这对于创建和访问该类型的成员来说都是很多工作。
更有用的方法是在Dictionary(Of T, V)
类中创建Test
并将值存储在该字典中,并将变量的名称作为字典中的键。
答案 1 :(得分:0)
我只知道C#中的代码,所以你需要翻译它:
List<Object> List = new List<Object>();
然后你可以使用:
List.add(variable)
我希望这会有所帮助。