Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Container-Klassen in Delphi

  Alt 23. Nov 2007, 01:29
Zitat von Khabarakh:
Auch sollte der Wrapper auf jeden Fall IList<T> implementieren, wodurch der Code aber schnell mal doppelt so lang wie bisher werden könnte .
Naja, es gäbe da die Option das Tellerranddingsens als .Net im Allgemeinen aufzufassen und dann gäbe es eine weitere Sprache, die genau das vereinfacht.
Hier mal Pseudo code, wie eine Liste aussehen kann, deren Elementtyp zwar generisch ist, aber T muss mindestens Person oder ein Nachfahre sein und einen öffentlichen, parameterlosen Konstruktor besitzen:
Delphi-Quellcode:
type
  PersonList<T> = public class(IList<T>)
    where T is Person, T has constructor;
  public
    method AddNew : T;
    method Add(item : T);
    property Count : Integer
      read Innerlist.Count;
    property Item[index : Integer] : T
      read InnerList[index]
      write InnerList[index]; default;
  protected
    property InnerList : List<T> := new List<T>(); readonly;
      implements IList<T>; // *plopp*, schon implementiert...
  end;

implementation

method PersonList<T>.Add(item : T);
begin
  Innerlist.Add(item);
end;

method PersonList<T>.AddNew : T;
begin
  result := new T();
  Add(result);
end;
OK, man hätte gleich von List<T> ableiten können... *g*
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat