using System.Collections.Generic;
public static void Main()
List<Control> listOfControls = new List<Control>();
listOfControls.Add(new Button(0, 100, "click"));
listOfControls.Add(new ListBox(10, 20, new List<string>()));
foreach (Control control in listOfControls)
public abstract class Control
public Control(int xPosition, int yPosition)
public virtual void Clear()
Console.WriteLine("Clearing control");
public abstract void Draw();
public class Button : Control
public Button(int xPosition, int yPosition, string buttonText): base (xPosition, yPosition)
public override void Draw()
Console.WriteLine("Drawing button...");
public class ListBox : Control
private List<string> list = new List<string>();
public ListBox(int xPosition, int yPosition, List<string> contents): base (xPosition, yPosition)
public override void Draw()
Console.WriteLine("Drawing listbox....");