Perhaps something like this?
public abstract class DynamicDisplay
{
private Control c;
public DynamicDisplay(Control display)
{
c = display;
}
//interprets the attribute visually and shows it in the control
public abstract void ShowVal(double valToDisplay);
}
public class ProgBarDynamicDisplay : DynamicDisplay
{
private double max;
public ProgBarDynamicDisplay(ProgressBar p, double nMax)
: base( p)
{
max = nMax;
}
public override void ShowVal(double valToDisplay)
{
MessageBox.Show("Value : " + valToDisplay);
}
}
To test:
namespace TestProject3
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
ProgressBar p = new ProgressBar();
TestProject3.Class1.ProgBarDynamicDisplay pbdr = new TestProject3.Class1.ProgBarDynamicDisplay(p, 100);
pbdr.ShowVal(10);
}
}
}