[英]Parent method that chooses child class (C#)
我正在努力避免重复的代码块 - 每个代码块处理父代的不同子代。 以下是我想避免的一个例子:
if (FormNumber == 0)
{
Child1 obj = new Child1()
statements;
}
else
{
Child2 obj = new Child2()
statements;
}
我想将FormNumber传递给父类,并使用父函数来确定使用哪个子类。 我想象一个父函数,如:
public Parent GetChild(int F)
{
if (FormNumber == 0)
return new Child1();
else
return new Child2();
}
然后在主要功能
Parent obj = new Parent();
Child? newobj = obj.GetChild(FormNumber);
statements;
问题是我需要弄清楚如何填写? 与正确的儿童班。
您需要为Child
设置一个inheratance层次结构。 如果为Child1和Child2设置公共接口,则可以执行以下操作:
Parent obj = new Parent();
IChild newobj = obj.GetChild(FormNumber);
// newobj may be a Child1 or Vhild2 object.
hiearrchy可能看起来像:
public interface IChild {
public methods();
}
public class Child1 : IChild {}
public class Child2 : IChild {}
您的方法可能如下所示:
public IChild GetChild(int F)
{
if (FormNumber == 0)
return new Child1();
else
return new Child2();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.