Einzelnen Beitrag anzeigen

Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#1

Metaklassen in Delphi, wie geht das mit C# [generics]?

  Alt 30. Aug 2011, 10:38
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...
  Mit Zitat antworten Zitat