2011-09-29 105 views
0

我想在运行时创建对象后在类内创建新变量。问题是我不知道变量名或值,所以我必须在运行时创建新的变量。在运行时在VB.NET中创建类的实例对象的变量

例如, -

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的值应该是Eval函数的返回值。

回答

3

创建类型后,您无法向.NET中的某个类型添加任何内容。一种类型确实是固定的。
您可以在运行时创建一个从Test继承的新类型,但创建和访问该类型的成员都会有很多工作。

更有用的方法是在Test类中创建一个Dictionary(Of T, V),并将该字典中的值与该变量的名称一起存储为字典中的键。

0

嗯,在我看来没有意义。因为我不知道背景。 但我会尝试添加一个List对象到你的Test类。 在这个列表中,您可以在运行时添加您想要的任何东西。

我只知道在C#代码,所以你需要它翻译:

List<Object> List = new List<Object>(); 

那么你可以使用:

List.add(variable) 

我希望这有助于一点点。