C #: Nenhuma conversão implícita da Classe <Criança> para a Classe <Base>
seguinte snippet não seria compilado. Com o seguinte erro:
Não é possível converter implicitamente o tipo 'Container <ChildClass>' em 'Container <BaseClass>'
class BaseClass {}
class ChildClass : BaseClass {}
class Container<T> where T : BaseClass {}
class Program {
static void Main() {
// why doesn't this work?
Container<BaseClass> obj = new Container<ChildClass>();
}
}
Isso é por design? Se for, qual é o motivo?