Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi universeller Datentyp? (https://www.delphipraxis.net/11646-universeller-datentyp.html)

hackyie 11. Nov 2003 10:05


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:
var vec : TVector;

vec := TVector.create;
vec.addElement(edit1.text);
vec.addElement(spinedit1.value);


spinedit1.value := vec.getElement(2);
So, dabei 2 Probleme:

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]

Treffnix 11. Nov 2003 10:08

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.

negaH 11. Nov 2003 10:13

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

hackyie 11. Nov 2003 10:21

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... :(

choose 11. Nov 2003 10:44

Re: universeller Datentyp?
 
  • Bei Delphi Inspiration gibt es Collectionframework (hier kann man durch "scharfes Hinsehen" erkennen, wie das Konzept realisiert ist),
  • Julian Bucknall beschreibt in "Tomes of Delphi: Alogrithm and Data Structure", wie man ein solches Collectionframework aufbauen könnte und erörtert für und wider,
  • im BDN gibt es den Artikel Templates in Object Pascal, der beschreibt, wie man generische Datentypen in Delphi hinbekommen könnte und
  • auf der diesjährigen EKON gab es auch einen Vortrag zu generischen Datentypen mit Delphi, hier wurde ein Präprozessor eingesetzt (einfach mal nach der Session suchen).

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