static void Main() { var calculator = new Calculator(); CalculatorCommand command = new CalculatorCommand(calculator, '+', 5); command.Execute(); // Current value = 5 (following + 5) command.Execute(); // Current value = 10 (following + 5) command.UnExecute(); // Current value = 5 (following - 5) // using Invoker Invoker user = new Invoker(); user.Compute('+', 7); // Current value = 7 (following + 7) user.Compute('-', 3); // Current value = 4 (following - 3) user.Compute('*', 12); // Current value = 48 (following * 12) user.Undo(2); // ---- Undo 2 levels //Current value = 4 (following / 12) //Current value = 7 (following + 3) user.Redo(1); //---- Redo 1 levels // Current value = 4 (following - 3) }
public CalculatorCommand(Calculator calculator, char theOperator, int operand) { this.calculator = calculator; this.Operator = theOperator; this.Operand = operand; }