Einzelnen Beitrag anzeigen

Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

Generics und Typparameter

  Alt 6. Nov 2011, 16:10
Hallo zusammen.

Ich möchte mir eine generische Klasse für einen einfachen Ringspeicher schreiben. Dazu verwalte ich (genau wie TList<T> ) die Elemente des Speichers in einem array of T . Das compiliert soweit ganz gut, bis ich die Add-Funktion implementieren will. Dann bekomme ich den Fehler:

Code:
E2571 Typparameter 'T' hat keine Klassen- oder Interface-Einschränkung
Was soll mir das sagen und warum kann ich es nicht genau so machen wie bei TList. Hier mal der auf nötigste zusammengestrichene Code:

Delphi-Quellcode:
type
 TRing<T> = class(TEnumerable<T>)
 private
  FItems: array of T;
 {...}
 public
   procedure Add(const Value: T);
   {...}
 end;

{...}

procedure TRing<T>.Add(const Value: T);
var
  Pos: Integer;
begin
  Pos := (Current + 1) mod Size;
  FItems[Pos] := T; // <- hier meckert er
end;
Die Add-Methode einer einfachen Liste scheint aber genau so zu funktionieren. Also .. was tun?
  Mit Zitat antworten Zitat