I got a little conversion problem. Don't think it is very complex but like to know why. Appreciate for your help :D
public class Family<TLivingThing> where TLivingThing : LivingThing
{
TLivingThing[] members;
}
public abstract class LivingThing
{
float lifeExpectancy;
}
public class Animal_A : LivingThing{}
public class Animal_B : LivingThing{}
class MainMethod
{
static void Main()
{
LivingThing livingTing = new Animal_A(); // Works great
Family<LivingThing> familyA = new Family<Animal_A>(); //Got warning
Family<LivingThing> familyB = (Family<LivingThing>) new Family<Animal_A>(); //Explicit cast warning
}
}
Got warning:
Cannot implicitly convert type 'Family<Animal_A>' to 'Family<LivingThing>'
Explicit cast:
Cannot convert type 'Family<Animal_A>' to 'Family<LivingThing>'
May I know why these error occur?