public override void Decorate(ITurbineEngineComponent reheat) { if (reheat is ReheatChamber) { Reheat = reheat as ReheatChamber; Reheat.Disengage(); return; } throw new ArgumentException("ReheatDecorator.Decorate", nameof(reheat)); }