Zugriffsverletzungen bei Benutzung von Generics

Nachdem ich nun das neue Feature  Generics in meinen Quellcodes implementiert hatte, musste ich auch gleich eine schmerzhafte Bekanntschaft mit einigen Zugriffsverletzungen bei der Benutzung von folgenden Methoden machen:

  • TObjectList<T>.Remove(<T>)
  • TObjectList<T>.Extract(<T>)
  • TObjectList<T>.IndexOf(<T>)

Das Problem hier ist, dass in der Unit Generics.Collection auf eine nicht erzeugte Instanz von TComparer zugegriffen wird.

Die Lösungen sind die folgenden:

  • auf Delphi 2010 updaten :-)
  • Verwendung von folgendem Constructor:
    ObjectList := TObjectList<T>.Create(TComparer<T>.Default);
    dabei wird automatisch der standard TComparer verwendet

Ein Update seitens Embarcadero gibt es bis dato nicht.