public void ProcessShipping(ref T package) { if (CanShip(package)) { package.SetShippingType(this); } else { _successor?.ProcessShipping(ref package); } }