在子类方法中实例化父类

时间:2018-11-30 03:27:37

标签: c# class object reflection instantiation

public class Parent {}

public class Child: Parent {
    public Child() {
        Parent instance_of_Parent = INSERTCODEHERE;
    }
}

如何在子类的方法中创建父类的所需实例(不一定是在构造函数中,尽管这是我为简洁起见而选择的方法),而不是通过名称引用“ Parent”,而是以某种方式标识它是当前类的父级?

2 个答案:

答案 0 :(得分:2)

如果您不关心性能,那么它将起作用:

public class Child: Parent {
    public Child()
    {
        var baseClass = GetType().BaseType;
        dynamic instance_of_Parent = Activator.CreateInstance(baseClass);
    }
}

答案 1 :(得分:0)

GetType().BaseType.GetConstructor(new Type[]{}).Invoke(null);

感谢Rimworld Discord上的DnaJur,该答案允许您为要用于实例化的父类选择特定的构造函数。

相关问题