I have a set of classes (MyClass1, MyClass2, MyClass3) that implement an interface (IMyClass).
I am interested in creating a method to fill and return a list (Collection.Generics.Lists<>) of objects that have common interface MyClassX (List<IMyClass>). But how?
Each class has a constructor MyClassX which does something different. So I can not create a BaseClass and use a common constructor for all.
By interface I can not do:
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!!
}
}
Also I tried using generics type, TMyClass in the next example, but neither has worked for me (though I have not very deep notions about generic types):
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!!
}
}
I tried also to externalize the code inside the Constructor of MyClassX in a method, but I can't call the method since de object is not initialized (there is no new () ).
In these cases which is the solution?
Thanks in advance!
item? Does it identify the type?