C #: нет преобразования преобразования класса <Child> в класс <Base>
Следующий фрагмент не скомпилируется. Со следующей ошибкой:
Не удается неявно преобразовать тип 'Container <ChildClass>' в '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>();
}
}
Это по замыслу? Если это так, в чем причина?