Delphi-Quellcode:
Type
TMyListElementClass = Class Of TMyListElement; <<<
Procedure Foobar;
Var
myList : TList;
myElementClass : TMyListElementClass;
myElement : TMyListelement;
Begin
myList := TList.Create;
myElementClass := TSomeDerivateOfTMyListElement;
myElement := myElementClass.Create;
myElement.SomeMethodFromTMyListElement;
myList.Add (myElement);
End;
Code:
Class TMyList<T>
{
public List<T>Items = new List<T>();
public void AddOneElement()
{
T item = Activator.CreateInstance<T>();
(item as TMyListElement).SomeMethodFromTMyListElement; // Das behagt mir nicht
Items.Add(item);
}
}
Frage: Kann ich dafür sorgen, das der Metaklassentyp 'T' mindestens vom GrundTyp 'TMyListElement' ist? Am Besten wäre es, wenn der Compiler schon meckert, aber von mir aus auch der Konstruktor zur Laufzeit...