Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi 10.2.3. Starter: Undeklarierter Bezeichner: TEqualityComparer (https://www.delphipraxis.net/195874-10-2-3-starter-undeklarierter-bezeichner-tequalitycomparer.html)

Codehunter 3. Apr 2018 10:34

10.2.3. Starter: Undeklarierter Bezeichner: TEqualityComparer
 
Hallo !

Ich wollte mir einen alternativen Comparer bauen, wie hier im letzten Post beschrieben. System.Generics.Collections und System.Generics.Defaults sind im interface-uses, trotzdem wird TEqualityComparer nicht gefunden. Ist das jetzt eine Einschränkung der Starter oder wurde die Klasse nur in eine andere Unit verschubst und die Hilfe nicht aktualisiert?

Grüße
Cody

Uwe Raabe 3. Apr 2018 10:59

AW: 10.2.3. Starter: Undeklarierter Bezeichner: TEqualityComparer
 
Der TEqualityComparer<T> is generisch. Du musst einen Typ in den spitzen Klammern angeben.

himitsu 3. Apr 2018 11:28

AW: 10.2.3. Starter: Undeklarierter Bezeichner: TEqualityComparer
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1397986)
Der TEqualityComparer<T> is generisch. Du musst einen Typ in den spitzen Klammern angeben.

Die Prüfung prüft halt, ob dieser Typ existiert.
Es gibt keine Meldung ala "Typ nicht vollständig". (es ist ja auch möglich, dass TXyz<xx> und TXyz parallel existieren)


Und nein, solche grundlegenden Typen werden wohl niemals in der Starter fehlen. (aber wer weiß was man sich noch einfallen lässt)

Codehunter 3. Apr 2018 12:12

AW: 10.2.3. Starter: Undeklarierter Bezeichner: TEqualityComparer
 
Lach ja, manchmal müsst ich nur richtig gucken, dann hätt ich es bei Stack Overflow auch sehen müssen. Die Fehlermeldung vom Compiler hat mich halt sehr irritiert bzw. war mir bis dato nicht bewusst dass der Typbezeichner bei generischen Klassen Bestandteil des Klassennamens ist.

Uwe Raabe 3. Apr 2018 12:54

AW: 10.2.3. Starter: Undeklarierter Bezeichner: TEqualityComparer
 
Zitat:

Zitat von Codehunter (Beitrag 1397997)
war mir bis dato nicht bewusst dass der Typbezeichner bei generischen Klassen Bestandteil des Klassennamens ist.

Das sind auch zwei völlig verschiedene Typen:

Delphi-Quellcode:
unit System.Generics.Collection;
...
  TList<T> = class(TEnumerable<T>)
...
Delphi-Quellcode:
unit System.Classes;
...
uses
...
  System.Generics.Collections,
...
  TList = class(TObject)
...
  TCollection = class(TPersistent)
  private
    FItemClass: TCollectionItemClass;
    FItems: TList<TCollectionItem>;
...

Codehunter 3. Apr 2018 13:10

AW: 10.2.3. Starter: Undeklarierter Bezeichner: TEqualityComparer
 
Klar, im Nachhinein ist es völlig logisch. Man muss halt nur immer erst durch sowas drauf gestoßen werden (wenn einem die Firma schon keine Schulungen gönnt) 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.

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