public static void Main(String[] args)
{
Caretaker caretaker = new Caretaker();
Originator originator = new Originator();
originator.Set("State1");
originator.Set("State2");
caretaker.AddMemento(originator.SaveToMemento());
originator.Set("State3");
caretaker.AddMemento(originator.SaveToMemento());
originator.Set("State4");
originator.RestoreFromMemento(caretaker.GetMemento(1));
Console.ReadLine();
}