我有以下问题:我有一个向导应用程序的用户控件列表,需要调用子方法
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();
?
谢谢你。
我有以下问题:我有一个向导应用程序的用户控件列表,需要调用子方法
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();
?
谢谢你。
您应该将该方法放在一个公共基类(例如,StepControl
)中,并使所有四个控件都继承自它。
然后,您可以List<StepControl>
直接创建并调用该函数。
好吧,你已经做到了:
steps[0].StopTimeOut();
只需在所有 Step 类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());
..