public static void Main()
Control button = new Button();
Console.WriteLine(button.GetClickState());
Console.WriteLine(button.GetClickState());
public abstract class Control
private ClickState _clickState;
_clickState = ClickState.Start;
public virtual void Update()
_clickState = ClickState.MouseOver;
Console.WriteLine($"New state: {_clickState}");
public virtual ClickState GetClickState()
public class Button : Control
Start, MouseOver, LeftClick