![]() |
Delphi-Version: 5
Variable mit bestimmbarem Datentyp?
Hallo,
ich würde gerne ein Klasse erzeugen bei der ich beim erzeugen einen bestimmten Datentyp wählen kann den ich dann für eine Variable in der Klasse benutzen soll. Also z.B.
Delphi-Quellcode:
Bin um jeden Tipp dankbar :D
var
var1, var2, var3 : TVariable; begin var1 := TVariable<string>.Create; var2 := TVariable<integer>.Create; var3 := TVariable<TKlasse>.Create; ShowMessage(var1.Value); // Gibt einen string aus ShowMessage(IntToStr(var2.Value)); // Einen Integer ShowMessage(var3.Value.Message); // TKlasse, jedoch wäre "Message" dann ein String end; Grüsse, Milu Edit: Ich benutze XE6 und nicht Delphi 5 nur mal so als anmerkung :D |
AW: Variable mit bestimmbarem Datentyp?
Versuch es mal so:
Delphi-Quellcode:
Und zum Edit: Du hättest in den erweiterten Editor umschalten sollen, denn da hättest'e das bestimmt richtig ändern können.
type
TVariable = class end; TVariable<T> = class(TVariable) private FVar: T; public constructor Create(Init: T); end; |
AW: Variable mit bestimmbarem Datentyp?
Oh cool, danke :D Das geht ja einfach ^^
Leider wusste ich nicht wie man das nennt, und somit hab ich bei der Google suche auch nicht wirklich was gefunden :/ Und das mit dem Erweiterten Editor wusst ich auch noch nicht :oops: Aber vielen dank ;) MfG |
AW: Variable mit bestimmbarem Datentyp?
Vererbung :zwinker:
Wie bei den anderen Klassen passt ein Nachfahre natürlich nur in Variablen vom selben Typ, oder von Vorfahren. Und da die generischen Ableitungen quasi jeweils einen "eigenständigen" Typen erzeugen, sind sie untereinander natürlich nicht kompatibel, außer gegen einen der gemeinsamen Vorfahren. XE6: Macht nichts. Du könntest das zwar immernoch berichtigen, aber es gibt dort eh noch kein XE6. Darfst aber gern den Bug-Report puschen: ![]() |
AW: Variable mit bestimmbarem Datentyp?
Darf ich mal fragen, wozu man soetwas benötigt und warum ein
![]() |
AW: Variable mit bestimmbarem Datentyp?
Zitat:
Hab mal gepusht ^^ Zitat:
MfG |
AW: Variable mit bestimmbarem Datentyp?
Nja, es gibt auch noch den OleVariant, der sich besser für die Kapselung "unbekannter" OLE-Interfaces macht.
Und da Delphi ein Problem mit überlaenen Default-Properties hat (das geht einfach nicht), hatte ich mir auch schonmal einen "varianten" Typen selber gebastelt. Dank Record-Operatoren ist das eine nette Angelegenheit. Bei mir war es ein Typ, welcher String und Integer untersützt und das wesentlich leichtgewichtiger, als der große Variant. |
AW: Variable mit bestimmbarem Datentyp?
Zitat:
|
AW: Variable mit bestimmbarem Datentyp?
Zitat:
Delphi-Quellcode:
zur Laufzeit auf
var3.Value.Message
Delphi-Quellcode:
zugreifen willst, wo Du doch zur Designzeit gar nicht wissen kannst, das diese Property existiert. D.h. wie würde der konkrete Code denn aussehen?
Message
Zitat:
Typsicherheit ist allerdings ein Argument. Trotzdem würde mich interessieren, wozu man das benötigt, wo man die konkrete variable doch auch quasi direkt erzeugen könnte. |
AW: Variable mit bestimmbarem Datentyp?
Zitat:
Natürlich macht sich das erst bei einer großen Menge an Zuweisungen bemerkbar, da diese ansonsten vernachlässigbar ist. Trotzdem ist es wenig sinnvoll unnötigerweise Variants zu nutzen, wenn es anders geht. Wenn man dann einen solchen Quelltext an einer Stelle nutzt, der mehr Performance benötigt, muss man alles mühsam umstellen, nur weil man ohne Not bewusst die schlechtere Wahl getroffen hat... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 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 by Thomas Breitkreuz