2

たとえば、「aaa」という名前の UserControl があります

それから私は変数を持っています:

Dim a as String = "aaa"

今、私は宣言します

Dim uc as UserControl = new aaa

私の質問は、以下のような変数 a の値を使用して上記の宣言を記述できますか

Dim uc as UserControl = new a

4

1 に答える 1

1

これは、リフレクション ( のSystem.Reflection) 名前空間を使用して行うことができます。例えば:

Dim t As Type = Assembly.GetExecutingAssembly().GetType("namespace.aaa")
Dim o As Object = Activator.CreateInstance(t)

名前空間を含む完全な型名が必要になることに注意してください。たとえば、次のように、それを文字列に連結する必要がある場合があります。

Dim namespace As String = "MyNamespace"
Dim t As Type = Assembly.GetExecutingAssembly().GetType(namespace & "." & a)
Dim o As Object = Activator.CreateInstance(t)
于 2012-11-12T16:31:35.373 に答える