我有以下问题: 我有一个向导应用程序的UserControl列表,需要调用子方法
List<UserControl> steps = new List<UserControl>();
steps.Add(new Step1());
steps.Add(new Step2());
steps.Add(new Step3());
steps.Add(new Step4());
所有都有StopTimeOut()方法。我该如何致电:steps[0].StopTimeOut();
?
谢谢。
答案 0 :(得分:6)
您应该将该方法放在一个公共基类(例如StepControl
)中,并使所有四个控件继承它。
然后你可以制作一个List<StepControl>
并直接调用该函数。
答案 1 :(得分:4)
嗯,你已经做到了:
steps[0].StopTimeOut();
在基类中声明所有步骤类StopTimeOut
方法为protected
或public
示例:
public Step : UserControl {
....
public virtual void StopTimeOut() {
//BASE IMPLEMENTATION
}
}
public Step1 : Step {
public override void StopTimeOut() {
//CHILD IMPLEMENTATION
}
}
public Step2 : Step {
public override void StopTimeOut() {
//CHILD IMPLEMENTATION
}
}
..
并在代码中:
List<Step> steps = new List<Step>();
steps.Add(new Step1());
steps.Add(new Step2());
..