Я хочу создать объекты с использованием таких конструкций:
IProduct product1 = creator.CreateProduct<ConcreteProduct1>();
IProduct product2 = creator.CreateProduct<ConcreteProduct2>();
Моя версия метода CreateProduct выглядит следующим образом:
public T CreateProduct<T>()
where T: IProduct, new()
{
switch (typeof(T))
{
case(...) return new ConcreteProduct1;
case(...) return new ConcreteProduct2;
}
}
Моя проблема в том, что я незнать, как использовать соответствующий шаблон в этом случае. Я попробовал несколько вариантов:
case (typeof(ConcreteProduct1)): return new ConcreteProduct1;
case (ConcreteProduct1 c): return new ConcreteProduct1;
Но все они не работают.
Какие выражения я должен использовать в операторах case? Или какие еще варианты у меня есть для реализации этого метода?