Im trying to rewrite my current piece of code into (see example0. But it doesnt know the carriage animal in my CheckIfAnimalFits method. How would I fix this without moving the entire foreach into the method
Current code
public bool AddAnimaltoWagon(Animal animal)
{
if (CheckWagonFull(animal) == true ) { return false; }
foreach (Animal carriageAnimal in Animals)
{
if (carriageAnimal.AnimalDiet == AnimalDiet.Carnivore
&& animal.Size <= carriageAnimal.Size
|| animal.AnimalDiet == AnimalDiet.Carnivore
&& animal.Size > carriageAnimal.Size)
{
return false;
}
}
Animals.Add(animal);
return true;
}
trying to get
public bool AddAnimaltoWagon(Animal animal)
{
if (CheckWagonFull(animal) == true ) { return false; }
foreach (Animal carriageAnimal in Animals)
{
if (CheckIfAnimalFits == false)
{
return false;
}
}
Animals.Add(animal);
return true;
}
public bool CheckIfAnimalFits(Animal animal)
{
if (carriageAnimal.AnimalDiet == AnimalDiet.Carnivore
&& animal.Size <= carriageAnimal.Size
|| animal.AnimalDiet == AnimalDiet.Carnivore
&& animal.Size > carriageAnimal.Size)
{
return false;
}
else
{
return true;
}
}
So it doesnt know carriageAnimal
in my new method