Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Generic TArray und TList ... (https://www.delphipraxis.net/214386-generic-tarray-und-tlist.html)

bernhard_LA 5. Jan 2024 13:12

Generic TArray und TList ...
 
wie muss denn die Korrekte Definition eine Generischen TClusterList Liste
aussehen , mein Syntaxfehler aktuell : [dcc32 Error] Unit_TKmeans.pas(37): E2508 Type parameters not allowed on this type



Delphi-Quellcode:
  /// <summary>
  ///   here it is just a simple pixel
  /// </summary>
  TClusterData = record
    DrawingColor: TColor;
    x,y : Integer;
  end;

  /// <summary>
  ///   here it is just a simple pixel , we store the complete image as a pixel list
  /// </summary>
  TRowData = TArray< TClusterData>;


  /// <summary>
  ///   store the data now inside a cluster with a Centroid
  /// </summary>
  TCluster<T> = record
     Center: TClusterData;
     ClusterElements : TArray<T>;
  end;

  /// <summary>
  ///   the cluster list
  /// </summary>
  TClusterList<T> = TArray<TCluster<T>>;

  /// <summary>
  ///   measure distance according to this function
  /// </summary
  TDistanceMetricfunction=reference to function(const A, B: TClusterData) : Double;

jaenicke 5. Jan 2024 13:20

AW: Generic TArray und TList ...
 
Du kannst nur konkreten neuen Typen einen generischen Parameter geben. Du kannst z.B. eine
Delphi-Quellcode:
TClusterList<T> = class(TList<TCluster<T>>)
erstellen. Dann hast du eine neue Klasse.

Deine TClusterList wäre aber nur ein Alias für TArray<T>. Du kannst einen Alias nur für einen existierenden Typen (auch mit Angabe eines konkreten Typen für einen generischen Parameter wie bei TRowData) definieren. Du kannst dabei aber keinen generischen Parameter neu definieren, da das ein neuer Typ wäre.

bernhard_LA 6. Jan 2024 00:23

AW: Generic TArray und TList ...
 
Danke , geht jetzt ;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz