static void Main(string[] args) { Elevator elevator = new Elevator(ElevatorState.RESTING, 1); TheFloorReached += elevator.FloorReached; if (elevator.GotoFloor(3)) { Thread.Sleep(2000); TheFloorReached.Invoke(null, EventArgs.Empty); } if (elevator.GotoFloor(3)) { Thread.Sleep(2000); TheFloorReached.Invoke(null, EventArgs.Empty); } elevator.CloseDoor(); if (elevator.GotoFloor(3)) { Thread.Sleep(2000); TheFloorReached.Invoke(null, EventArgs.Empty); } }