using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace State_VendingMachineExample { // Concrete State internal class ReadyState : VMState { public ReadyState(VendingMachine context) { vendingMachine = context; } public override void AddMoney(decimal money) { vendingMachine.State = vendingMachine.HasMoneyState; vendingMachine.State.AddMoney(money); } public override void ReturnChange(decimal money) { throw new ApplicationException(); } public override void SelectItem(int itemId) { throw new ApplicationException(); } } }