Я создаю экземпляр динамически, используя Activator.CreateInstance. Однако он говорит, что объект не может быть нулевым при каждой попытке. Вставка кода ниже. Я что-то делаю неправильно?Activator.CreateInstance failing
Есть ли какие-либо проблемы, если
Activator.CreateInstance
заменяет обычные/оператор регистра переключателя для определения типа объекта в время выполнения? Благодарю.
public abstract class Base
{
public abstract void Func();
}
public class Derived:Base
{
public override void Func()
{
MessageBox.Show("Derived First");
}
}
public class Derived2 : Base
{
public override void Func()
{
MessageBox.Show("Derived Second");
}
}
private void button1_Click(object sender, EventArgs e)
{
// I was trying to make use of the overladed version
// where it takes the Type as parameter.
BaseClass report =
(BaseClass) Activator.CreateInstance(Type.GetType("Derived"));
report.Func();
}
почему бы вам не использовать TypeOf() вместо Type.GetType() ?? –