universeller Datentyp?
Hihow,
also ich will mir eine Art Vektor-Unit programmieren. Die enthält eine verkettete Liste von Objekten, und die nötigen Funktionen / Proceduren, um den Inhalt zu schreiben / zu lesen. Soll dann also in der Anwendung etwa so aussehen:
Delphi-Quellcode:
So, dabei 2 Probleme:
var vec : TVector;
vec := TVector.create; vec.addElement(edit1.text); vec.addElement(spinedit1.value); spinedit1.value := vec.getElement(2); 1.: Der Vektor soll ALLES speichern können, egal ob der Anwender da jetzt Integer, Strings, Records, etc. reinwirft, man bräuchte also so ne Art universal-Datenty. Gibt's den? 2.: Wenn das dann geht, wie mache ich es am elegantesten, dass man beim Rauslesen auch die Information hat, was man da gerade rausliest? [edit=r_kerber]Delphi-Tags eingefügt! Mfg, r_kerber[/edit] |
Re: universeller Datentyp?
Hast du dir schon mal den Typ Variant angeschaut? Vielleicht reicht das ja schon. Da gibts auch diverse Funktionen um den wirklichen Typ des Variants zu ermitteln.
|
Re: universeller Datentyp?
Ein universeller Datentyp wird immer verkommen. D.h. er wird immer am ineffizientesten sein und genau das nicht können was man im aktuellen Moment benötigt.
Er stellt also das genaue Gegenteil eines guten Designs dar. Ok, wir wissen das in einigen wenigen Situationen ein solcher Datentyp sehr hilfreich ist, allerdings wird man solche Typen eben sehr selten in gut durchdachtem Code finden. Nur mal so rein philosophisch eingeworfen :) Gruß hagen |
Re: universeller Datentyp?
Hmmm..würde Variant denn auch mit Records zurechtkommen?
Klingt logisch, dass ein solcher Datentyp nicht das gelbe vom Ei ist, aber wie würdet Ihr das Problem sonst lösen? Eine eigene Klasse für jeden Typ? Ist auch irgendwo doof... :( |
Re: universeller Datentyp?
Alle Versionen haben gemeinsam, dass die Typenstrenge von Pascal/Delphi Language nicht untergraben wird und sie iA performater, weil spezialisiert, arbeiten als eine Lösung mit varianten Datentypen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz