Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
Delphi 10.1 Berlin Enterprise
|
AW: Generics: Ungültige Typumwandlung
12. Nov 2012, 17:22
Andere Möglichkeit wäre, TValue.FromVariant
zu benutzen, dann wird nämlich der Datentyp benutzt, der intern im Variant steckt.
Vorteil: Wenn du im Variant nen string stehen hast, wird nicht der Variant, in dem der string steht im TValue gespeichert, sondern der string.
Nachteil: Wie im vorherigen Post erwähnt, geht dir eventuell notwendige implizite Typenkonvertierung verloren
Generell kann ich empfehlen, auf Variants zu verzichten, sofern du einen generischen Ansatz verfolgst. Benutze an Stellen, wo du zur Compiletime den Type nicht kennst, lieber TValue, um Werte auszutauschen. An allen anderen Stellen, benutze den konkreten Datentyp. TValue verfügt für die meisten Standardtypen über überladene Implicit Operatoren, die dir den Aufruf von z.B. TValue.From<Integer>(i)
ersparen.
Geändert von Stevie (12. Nov 2012 um 17:27 Uhr)
|