Мне было интересно, есть ли более элегантный способ, чем этот пример, использовать универсальный тип в качестве универсального параметра:
public class Wrapper<TObject>
where TObject : MyBaseClass
{
}
public class WrapperCollection<TWrapper, TObject> : Collection<TWrapper>
where TWrapper : Wrapper<TObject>
where TObject : MyBaseClass
{
}
На самом деле, если я хочу инициализировать экземпляр WrapperCollection, я бы сделал это следующим образом:
WrapperCollection<Wrapper<MyClass>, MyClass> collection =
new WrapperCollection<Wrapper<MyClass>, MyClass>();
И поскольку я не очень доволен этим, то было бы действительно элегантно иметь возможность инициализировать это так:
WrapperCollection<Wrapper<MyClass>> collection =
new WrapperCollection<Wrapper<MyClass>>();
Итак, мой вопрос прост: есть ли способ сделать это или есть более элегантный дизайн для моего CollectionWrapper?
Спасибо.