我知道这不会这样,因为类的构造函数是空的:
class ParentClass
{
public ParentClass(int case)
{
if(case==1)
return new ChildClass1();
else
return new ChildClass2();
}
}
有没有办法做到这一点。
答案 0 :(得分:7)
不,没有办法,但...... 它听起来像一个工厂模式实现为静态方法:
class ParentClass
{
// "disable" ctor for public use but
// allow for children
protected ParentClass() { }
public static ParentClass CreateInstance(int @case)
{
if(@case==1)
return new ChildClass1();
else
return new ChildClass2();
}
}
用法:
var parentClass= ParentClass.CreateInstance(1);