How do I define a generic class where I have 2 types that must be different?
// General breeding - could be any animal/species with any animal/species
public abstract class Breed<TAnimal1, TAnimal2>
where TAnimal1 : Animal
where TAnimal2 : Animal
{
}
// Must breed among same animal/species
public abstract class IntraBreed<TAnimal> : Breed<TAnimal, TAnimal>
where TAnimal : Animal
{
}
// Must breed between 2 different animals/species
public abstract class CrossBreed<TAnimal1, TAnimal2> : Breed<TAnimal1, TAnimal2>
where TAnimal1 : Animal
where TAnimal2 : Animal
where TAnimal1 != TAnimal2 // I need something like this
{
}