Чтобы динамически объявлять объекты в VB.NET, вы можете использовать ключевое слово Dimвместе с функцией GetTypeили методом Activator.CreateInstance. Вот несколько методов с примерами кода:
-
Использование GetType и Activator.CreateInstance:
Dim objectType As Type = GetType(MyClass) Dim obj As Object = Activator.CreateInstance(objectType) -
Использование Type.GetType и Activator.CreateInstance:
Dim typeName As String = "Namespace.MyClass" Dim objectType As Type = Type.GetType(typeName) Dim obj As Object = Activator.CreateInstance(objectType) -
Использование Activator.CreateInstance с аргументами конструктора:
Dim objectType As Type = GetType(MyClass) Dim constructorArgs() As Object = {arg1, arg2, arg3} Dim obj As Object = Activator.CreateInstance(objectType, constructorArgs) -
Использование Activator.CreateInstance с закрытым конструктором:
Dim objectType As Type = GetType(MyClass) Dim bindingFlags As BindingFlags = BindingFlags.Instance Or BindingFlags.NonPublic Dim obj As Object = Activator.CreateInstance(objectType, bindingFlags, Nothing, Nothing, Nothing) -
Использование Activator.CreateInstance с универсальным типом:
Dim genericType As Type = GetType(List(Of )) Dim specificType As Type = genericType.MakeGenericType(GetType(MyClass)) Dim obj As Object = Activator.CreateInstance(specificType)