继承的应用程序

时间:2015-11-07 06:56:40

标签: c# winforms .net-4.5

我刚刚继承了一个WinForm应用程序。部分代码似乎太相似了。对于每种控件类型,执行相同,只是强制转换。例如:

    private void oSelectedControl_PropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        if (oSelectedControl.Type == "Advance")
        {
            oProperties.SelectedObject = ((Advance)oSelectedControl.SelectedControl).Properties;
        }
        else if (oSelectedControl.Type == "PercentageGauge")
        {
            oProperties.SelectedObject = ((PercentageGauge)oSelectedControl.SelectedControl).Properties;
        }
        else if (oSelectedControl.Type == "TrevoMeter")
        {
            oProperties.SelectedObject = ((TrevoMeter)oSelectedControl.SelectedControl).Properties;
        }
        .
        .
        .
  }

至少有40个控件继续使用。

有没有办法用泛型来做这件事?

由于

1 个答案:

答案 0 :(得分:1)

通过让每个控件继承包含此特定属性的抽象基类,您可以使用继承轻松完成。

abstract class ControlBase 
{
   abstract object Properties { get; }
}