У меня есть набор классов (MyClass1, MyClass2, MyClass3
), которые реализуют интерфейс (IMyClass
).
Я заинтересован в создании метода для заполнения и возврата списка (Collection.Generics.Lists<>
) объектовкоторые имеют общий интерфейс MyClass
X
(List<IMyClass>
).Но как?
У каждого класса есть конструктор MyClass
X
, который делает что-то свое.Поэтому я не могу создать BaseClass и использовать общий конструктор для всех.
По интерфейсу я не могу сделать:
public List<IMyClass> Fill(string[] ItemsPassedByParam, IMyClass InstanceOfMyClassX)
List MyList = new List<IMyClass>();
foreach (item in ItemsPassedByParam)
{
MyList.Add (new IMyClass (item)); //can't do new from an Interface!!
}
}
Также я попытался использовать тип generics,TMyClass в следующем примере, но ни один из них не сработал для меня (хотя у меня нет очень глубоких представлений об универсальных типах):
public List<TMyClass> Fill(string[] ItemsPassedByParam, Type TypeOfMyClassX)
List MyList = new List <TMyClass> ();
foreach (item in ItemsPassedByParam)
{
MyList.Add (new TMyClass (item)); //can't do new from a Generic Type!!
}
}
Я также пытался экстернализировать код внутри Конструктора MyClass
X
в методе, но я не могу вызвать метод, поскольку объект de не инициализирован (нет new ()
).
В этих случаях, какое решение?
Заранее спасибо!