AGB  ·  Datenschutz  ·  Impressum  







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

Eine Frage zu Generics in generischen Listen

Ein Thema von Catweasel77 · begonnen am 5. Mai 2019 · letzter Beitrag vom 7. Mai 2019
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.048 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eine Frage zu Generics in generischen Listen

  Alt 5. Mai 2019, 18:22
Als erstes fällt mir auf:
Du arbeitest mit Generics, benutzt aber die nicht generische Objektliste mit Casts?!?

Ich glaube du meintest es so in etwa wie im Anhang:
Delphi-Quellcode:
  TListTypeGeneric<TDataObjectType; TListType: TDataTypeGeneric<TDataObjectType>, IDataIO, constructor> = class(TObjectList<TListType>)
...
Benutzung:
Delphi-Quellcode:
var
  Test: TListTypeGeneric<Integer, TIntegerClass>;
begin
  Test := TListTypeGeneric<Integer, TIntegerClass>.Create;
  try
    Test.AddNewElement.Data := 42;
    ShowMessage(Test.Element[0].ToString); // Oder: Test.Items[0].Data.ToString
  finally
    Test.Free;
  end;
// EDIT:
Das geht aber noch schöner. Ich habe beruflich ein ähnliches Problem gehabt und habe schlicht ein generisches Dictionary benutzt, in dem man Behandlungsroutinen registrieren kann. Auf diese Weise brauchte ich in die konkrete Logik bei der generischen Nutzung keinen weiteren Aufwand mehr hineinstecken solange in dem Dictionary für den jeweiligen Datentyp eine Behandlung hinterlegt war.
Angehängte Dateien
Dateityp: 7z DataListTest.7z (5,2 KB, 12x aufgerufen)
Sebastian Jänicke
AppCentral

Geändert von jaenicke ( 5. Mai 2019 um 18:26 Uhr)
  Mit Zitat antworten Zitat
 


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 11:54 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