![]() |
Delphi-Version: 2010
Generischer Setter mit Basistypen möglich
Hallo zusammen,
ich spiele gerade mit Generics rum und wundere mich, daß so etwas nicht funktioniert.
Delphi-Quellcode:
Für komplexe Typen verstehe ich das ja noch. Hier muss ich einen TComparer definieren, aber für Basistypen?procedure GenericSetter<T> (var APropValue : T; const AValue : T); begin if APropValue<>AValue then // nicht möglich begin APropValue:=AValue; FChanged:=True; // Datenbankrecord geändert ? end; end; //Edit : Fehler in Deklaration beseitigt |
AW: Generischer Setter mit Basistypen möglich
Daran, das 'APropValue' eigentlich 'APropertyValue' heißen müsste (oder umgekehrt) liegt es jetzt aber nicht, oder?
PS: Und an deiner Delphiversion (5!) auch nicht, oder? ;-) Ändere mal dein Profil... |
AW: Generischer Setter mit Basistypen möglich
Hallo Alzaimar,
nein am PropValue liegts nicht, ich hatte das hier nur so runtergeschrieben. Konkret sieht das noch etwas anders aus. Das Problem ist aber, das die Typen nicht zuweisungskompatibel bzw. vergleichbar sind, obwohl sie vom gleichen Typ sind. Wenn ich jetzt extra Comparer für jeden Basistyp schreiben muss, hat sich der Vorteil der Generics hier ja erledigt. Oder? Btw. Mein Profil passt. Ich sehe hier bei mir D2010. Du nicht ? |
AW: Generischer Setter mit Basistypen möglich
Entweder war ich heute morgen zu blind, oder ich war heute morgen zu blöd.
Da stand ne 5, großes Ehrenwort.:stupid: |
AW: Generischer Setter mit Basistypen möglich
@alzaimar
hatte ich zwar mal aber ich bin schon einige Zeit bei D2006 bzw. D2010 Prof. Hat sonst keiner sachdienliche Hinweise? Ich meine es kann ja eigentlich nicht funktionieren da ich im Setter eigentlich ja nur einen Wert übergeben kann. Es wäre jedoch schick wenn man solche Sachen mit Generics deckeln könnte. Da würde man einige Zeilen Code sparen. cu cg |
AW: Generischer Setter mit Basistypen möglich
Zitat:
siehe erster Beitrag bei Delphi-Version |
AW: Generischer Setter mit Basistypen möglich
Wo?? Nein Scherz, Du hast natürlich Recht. Ich habe es korrigiert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 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