public bool TryMakeTurbojet(int numberofshafts, Generator gen, List <Spool> spools, int egt, int isp, int numberofcycles, List <Propellant> fueList, List <Oxidiser> oxidisers, string manuf, string model, string serialnumber, float maxpower, float operatingtime, float fuelflow, OnOff stat, out Turbojet incomingTurbojet, bool hasreverse = true, PoweredAircraft parentvehicle = null) { try { Turbojet turbojet = MakeTurbojet(numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); incomingTurbojet = turbojet; return(true); } catch (ArgumentNullException argumentNullException) { Console.WriteLine(argumentNullException.Message); incomingTurbojet = null; return(false); } catch (ArgumentException argumentException) { Console.WriteLine(argumentException.Message); incomingTurbojet = null; return(false); } catch (Exception e) { Console.WriteLine(e.Message); incomingTurbojet = null; return(false); } }
public Turbojet TryMakeTurbojet(int numberofshafts, Generator gen, List <Spool> spools, int egt, int isp, int numberofcycles, List <Propellant> fueList, List <Oxidiser> oxidisers, string manuf, string model, string serialnumber, float maxpower, float operatingtime, float fuelflow, OnOff stat, bool hasreverse = true, PoweredAircraft parentvehicle = null) { Turbojet turbojet = new Turbojet(); try { turbojet = MakeTurbojet(numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); } catch (ArgumentNullException argumentNullException) { Console.WriteLine(argumentNullException.Message); switch (argumentNullException.ParamName) { case nameof(spools): spools = new List <Spool>(); turbojet = TryMakeTurbojet(numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; case nameof(serialnumber): serialnumber = "no serial number specified"; turbojet = TryMakeTurbojet(numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; case nameof(fueList): fueList = new List <Propellant>(); turbojet = TryMakeTurbojet(numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; case nameof(oxidisers): oxidisers = new List <Oxidiser>(); turbojet = TryMakeTurbojet(numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; } } catch (ArgumentException argumentException) { Console.WriteLine(argumentException.Message); if (argumentException.ParamName == nameof(numberofshafts)) { numberofshafts = 1; turbojet = TryMakeTurbojet(numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); } } catch (Exception e) { Console.WriteLine(e.Message); } return(turbojet); }