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>(); 
    }
}

Это по замыслу? Если это так, в чем причина?

Ответы на вопрос(4)

Ваш ответ на вопрос