创建抽象类的新实例

时间:2013-03-17 14:23:13

标签: c#-4.0

我有抽象类

public abstract class BaseEntityDate<T> where T : class
    {
void ExecFunction ( T[] I )
{
}

}

下一个抽象类使用此

public abstract class BaseBOList<T> : T where T : class
    {
public void SomeFunction ( T[] VarObj )
{
BaseEntityDate<T> ObjectData = Activator.CreateInstance<BaseEntityDate<T>>();

ObjectData.ExecFunction ( VarObj );

}
}

public class MyClass
{
}

然后创建继承类

public class NyInhClass : BaseBOList<MyClass>
{
}


MyClass[] ArrayMyClass = new MyClass[]() { new MyClass() };

NyInhClass  TestOb = new NyInhClass ();

TestOb.SomeFunction ( ArrayMyClass );

下一个使用示例

public class MyClass2
    {
    }

然后创建继承类

public class NyInhClass2 : BaseBOList<MyClass2>
{
}


MyClass2[] ArrayMyClass2 = new MyClass2[]() { new MyClass2() };

NyInhClas2s  TestOb = new NyInhClass2 ();

TestOb.SomeFunction ( ArrayMyClass2 );

等等

准确例外“无法创建抽象类”

可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

试试这样:

object ExecuteBaseEntityDate ( T _Var )
{
    return Activator.CreateInstance(typeof(T));
}

在这个例子中,我们使用Activator.CreateInstance重载,它不是通用的,但在运行时动态获取type参数。