public static Bird CreateBird(BirdSpecies Species) { Bird animalObj = null;//Birdtype unknown at this time. //Lets determine users choice of animal. switch (Species) { case BirdSpecies.Crow: animalObj = new Crow(); break; case BirdSpecies.Eagle: animalObj = new Eagle(); break; case BirdSpecies.Penguin: animalObj = new Penguin(); break; default: Debug.Assert(false, "Not implemented"); break; } //Set animal category animalObj.Category = CategoryType.Bird; return animalObj;//Return created instance of object. }
public static Bird CreateBird(BirdSpecies species) { //type not known at this time Bird animalObj = null; try { //type determined by late binding switch (species) { case BirdSpecies.Eagle: animalObj = new Eagle();//late binding if (animalObj == null) { NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } break; case BirdSpecies.Falcon: animalObj = new Falcon();//late binding if (animalObj == null) { NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } break; case BirdSpecies.Duck: animalObj = null; if (animalObj == null) { NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } break; default: Debug.Assert(false, "to be completed"); break; } } //custom exception catch (Exception e) { e.Message.ToString(); NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } //set the category animalObj.Category = CategoryType.Bird; return animalObj; }
public static Bird CreateBird(BirdSpecies species) { //type not known at this time Bird animalObj = null; try { //type determined by late binding switch (species) { case BirdSpecies.Eagle: animalObj = new Eagle(); //late binding if (animalObj == null) { NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } break; case BirdSpecies.Falcon: animalObj = new Falcon(); //late binding if (animalObj == null) { NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } break; case BirdSpecies.Duck: animalObj = null; if (animalObj == null) { NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } break; default: Debug.Assert(false, "to be completed"); break; } } //custom exception catch (Exception e) { e.Message.ToString(); NonExistentAnimalTypeException ex = new NonExistentAnimalTypeException(); throw (ex); } //set the category animalObj.Category = CategoryType.Bird; return(animalObj); }