0

実行時にオブジェクトを作成した後、クラス内に新しい変数を作成しようとしています。問題は、変数名や値が事前にわからないため、実行時に新しい変数を作成する必要があることです。

たとえば-

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クラスで宣言されていません。私がやりたいのはabc、長さ2のオブジェクト配列を作成し、それにいくつかの値を入力することFval(abc)です。呼び出されると、インデックス1の値が関数の戻り値になりEvalます。

4

2 に答える 2

3

タイプが作成された後は、.NETのタイプに何も追加できません。タイプは本当に固定されています。
Testを継承する新しいタイプを実行時に作成できますが、そのタイプのメンバーを作成してアクセスするには、多くの作業が必要になります。

はるかに便利なアプローチはDictionary(Of T, V)Testクラスにを作成し、変数の名前をディクショナリのキーとしてそのディクショナリに値を格納することです。

于 2011-09-29T05:49:47.520 に答える
0

うーん、私の意見では、それは意味がありません。私は背景を知らないので。しかし、私はあなたのTestクラスにListオブジェクトを追加しようとします。このリストには、実行時に必要なものを追加できます。

私はC#のコードしか知らないので、それを翻訳する必要があります:

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

次に、次を使用できます。

List.add(variable)

これが少し役立つことを願っています。

于 2011-09-29T05:59:16.237 に答える