Rom*_*Coo 1 c# inheritance constructor class
我知道这不起作用,因为类的构造函数是一个void:
class ParentClass
{
public ParentClass(int case)
{
if(case==1)
return new ChildClass1();
else
return new ChildClass2();
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点.
不,没有办法,但......听起来像是作为静态方法实现的工厂模式:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
var parentClass= ParentClass.CreateInstance(1);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
354 次 |
最近记录: |