Einzelnen Beitrag anzeigen

christophspaeth

Registriert seit: 7. Mär 2008
73 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Generics ToArray: TArray vs. array of

  Alt 6. Feb 2014, 09:12
Delphi-Version: XE2
Hallo,

in einer Klasse möchte ich Unterobjekte zwar in einer generischen Liste verwalten, über die published Schnittstelle (für Übertragung via SOAP) aber auch als array of (bzw. einen eigens definierten Typ) anbieten:

Delphi-Quellcode:
type
  TMyType = class(TRemotable)
     //irgendwas
  end;
  TMyTypes = array of TMyType;

  TParentType = class(TRemotable)
  private
    FData: TList<TMyType>;
  public
    property Data: TList<TMyType> read FData;
  published
    property DataTransfer: TMyTypes read GetData write SetData;
  end;
Wenn ich jetzt in der Funktion GetData versuche, FData.ToArray() zurückzugeben, meckert der Compiler, dass die Typen TMyTypes und System.TArray<TMyType> inkompatibel seien.
In der System ist aber  TArray<T> = array of T , also auch wieder array of TMyType definiert.

Jetzt stehe ich glaube ich etwas auf dem Schlauch: Das sind doch beides dynamische Arrays?

Generics über SOAP macht ja zum einen Probleme (http://www.delphipraxis.net/150579-g...eber-soap.html), zum anderen hab ch mal gelernt, dass nur generische Typen oder TRemotable-Kinder verwendet werden sollen/dürfen.

Gibt es hier eine schönere/elegantere Lösung als das Ergebnis manuell mit Setlength und for-Schleife zu befüllen?
Christoph Späth
  Mit Zitat antworten Zitat