Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Generics: Ungültige Typumwandlung

  Alt 12. Nov 2012, 16: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.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (12. Nov 2012 um 16:27 Uhr)
  Mit Zitat antworten Zitat