Activator
Метод
CreateInstance
ищет подходящий открытый
конструктор. Если конструктора
без параметров нет, вызов без
аргументов бросает
MissingMethodException.
Синтаксис
object item = Activator.CreateInstance(typeof(Gate));
Пример
Давайте создать Gate
без аргументов:
using System;
class Gate
{
public int Count = 12345;
}
class Program
{
static void Main()
{
Gate gate = (Gate)Activator.CreateInstance(typeof(Gate));
int res = gate.Count;
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте создать объект со
строкой abcde:
using System;
class Gate
{
public string Name;
public Gate(string name)
{
Name = name;
}
}
class Program
{
static void Main()
{
Gate gate = (Gate)Activator.CreateInstance(typeof(Gate), "abcde");
string res = gate.Name;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте проверить тип созданного объекта:
using System;
class Gate
{
}
class Program
{
static void Main()
{
object item = Activator.CreateInstance(typeof(Gate));
bool res = item is Gate;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
CreateInstance,
метод создания -
ConstructorInfo.Invoke,
конструктор вручную -
GetConstructors,
список конструкторов -
ConstructorInfo,
описание конструктора