AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Syntax für generischen Typ

Ein Thema von Codewalker · begonnen am 4. Nov 2012 · letzter Beitrag vom 5. Nov 2012
Antwort Antwort
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Syntax für generischen Typ

  Alt 5. Nov 2012, 09:22
Oh ok, danke. Selbst noch nicht gewusst.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Syntax für generischen Typ

  Alt 5. Nov 2012, 09:41
Um einen Primary Key in einem TDictionary<TKey,TValue> abzubilden, kann man als TKey ja einen Typen seiner Wahl angeben.

Habe ich für diesen Primary Key ...
  • einen Wert, dann nehme ich genau den Datentyp dieses einen Wertes.
    MyDict : TDictionary<string,TMySubject>;
  • zwei Werte, dann nehme ich TPair<TKey,TValue>
    MyDict : TDictionary<TPair<string,Int64>,TMySubject>; oder alternativ auch
  • n Werte, dann erzeuge ich mir ein Record mit allen Werten
    Delphi-Quellcode:
    TFooPrimaryKey = record
      Value1 : string;
      Value2 : Int64;
      Value3 : Boolean;
      Value4 : string;
    end;

    MyDict : TDictionary<TFooPrimaryKey,TMySubject>;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.763 Beiträge
 
Delphi 12 Athens
 
#3

AW: Syntax für generischen Typ

  Alt 5. Nov 2012, 09:49
Wobei man bei den letzen 2 eventuell noch einen Comparer erstellen sollte, da TDictionary nicht von selbst diese Typen vergleichen kann.

Das kann nur Binär, bei solchen komplexen Typen, und da wird 'Text' nicht unbedingt gleich 'Text' sein. (wenn das unterschiedliche Variablen sind, da nur der Zeiger und nicht der Inhalt verglichen würde)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Syntax für generischen Typ

  Alt 5. Nov 2012, 10:17
Wobei man bei den letzen 2 eventuell noch einen Comparer erstellen sollte, da TDictionary nicht von selbst diese Typen vergleichen kann.
Nicht beim TPair ... bei dem normalen Record ja
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.763 Beiträge
 
Delphi 12 Athens
 
#5

AW: Syntax für generischen Typ

  Alt 5. Nov 2012, 10:25
OK, vielleicht hat Delphi, für TPair, sich schon irgendwo schon einen Standard-Comparer definiert?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Nov 2012 um 10:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Syntax für generischen Typ

  Alt 5. Nov 2012, 10:29
OK, vielleicht hat Delphi, für TPair, sich schon irgendwo schon einen Standard-Cimparer definiert?
Nein ich hab doch nicht recht ... allerdings habe ich auch immer mit Integer/Int64 gearbeitet TPair<Int64,Int64> und das funktioniert.
Mit TPair<string,...> funktioniert es nicht ... aus den von dir genannten Gründen

Also nehme ich alles zurück und behaupte das Gegenteil
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 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-2025 by Thomas Breitkreuz