AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

universeller Datentyp?

Offene Frage von "hackyie"
Ein Thema von hackyie · begonnen am 11. Nov 2003 · letzter Beitrag vom 11. Nov 2003
Antwort Antwort
hackyie

Registriert seit: 3. Nov 2003
50 Beiträge
 
#1

universeller Datentyp?

  Alt 11. Nov 2003, 10:05
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]
Thread(this).Post(this).terminate;
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: universeller Datentyp?

  Alt 11. Nov 2003, 10:08
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.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#3

Re: universeller Datentyp?

  Alt 11. Nov 2003, 10:13
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
  Mit Zitat antworten Zitat
hackyie

Registriert seit: 3. Nov 2003
50 Beiträge
 
#4

Re: universeller Datentyp?

  Alt 11. Nov 2003, 10:21
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...
Thread(this).Post(this).terminate;
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#5

Re: universeller Datentyp?

  Alt 11. Nov 2003, 10:44
  • 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.
gruß, choose
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 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