예제 #1
0
 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);
     }
 }
예제 #2
0
        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);
        }