Having each scope almost the same like below doesn't feel right at all. I'd rather have one scope where name, age i.e. are set than having 3 for each object of cat, dog and puppy. How can this code below be improved?
- private void addAnimal_Click(object sender, EventArgs e)
- {
-
- var name = inputName.Text;
- int age = int.Parse(inputAge.Text);
- var favfood = inputFavfood.Text;
- var breed = inputBreed.Text;
- var typeOfAnimal = dropDownTypeOfAnimal.Text;
-
-
- if (typeOfAnimal == "Cat")
- {
- Animal cat = new Cat();
-
- cat.Name = name;
- cat.Age = age;
- cat.FavFood = favfood;
- cat.Breed = breed;
- cat.IsHungry = utility.ShuffleProbability();
- Pets.Add(cat);
- }
- if (typeOfAnimal == "Dog")
- {
- Animal dog = new Dog();
-
- dog.Name = name;
- dog.Age = age;
- dog.FavFood = favfood;
- dog.Breed = breed;
- dog.IsHungry = utility.ShuffleProbability();
- Pets.Add(dog);
- }
- if (typeOfAnimal == "Puppy")
- {
- Animal puppy = new Puppy();
-
- puppy.Name = name;
- puppy.Age = age;
- puppy.FavFood = favfood;
- puppy.Breed = breed;
- puppy.IsHungry = utility.ShuffleProbability();
- Pets.Add(puppy);
- }
-
- }