static void Main(string[] args) { // Setup context in a state Context c = new Context(new ConcreteStateA()); //Issue request, which toggles state c.Request(); c.Request(); c.Request(); c.Request(); Console.ReadLine(); }