AGB  ·  Datenschutz  ·  Impressum  







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

Dynamische Datenstrukturen in .NET

Ein Thema von Raffigator · begonnen am 30. Apr 2007 · letzter Beitrag vom 30. Apr 2007
Antwort Antwort
Seite 2 von 3     12 3      
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 13:07
Zitat von Phoenix:
Wobei.. wäre das nicht mit einem Array leichter zu erreichen?
Hmpf?
Zitat von Raffigator:
Zitat von mkinzler:
Delphi-Quellcode:
arr: array of ...;
...
setLength( arr, <Größe>);
Ja, vielleicht ist das wirklich das sinnvollste...ich werde mal in diese Richtung weiter denken
Nein, nein und nochmals nein!
  • Punkt1: .Net kennt keine dynamischen Arrays
  • Punkt2: Was Delphi anstellen muss um sowas zu emulieren ist alles andere als feierlich.
    Es ist sogar ziemlich lahm.
Du brauchst keine Records für die Knoten, da kannst du genauso gut Klassen nehmen.
Records haben in .Net auf'm Heap nix zu suchen, das ist alles andere als performant. (siehe "Boxing" in egal welcher(m) .Net-Doku oder Buch)
btw: Why setlength is evil™
In .Net >= 2.0 gibt es beides: List<T> (array basiert) und Linked<T>.
In 1.1 kannst du also entweder mit der ArrayList arbeiten oder dir schnell eine verkette Liste friemeln.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#12

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 13:13
Zitat von Elvis:
Zitat von Phoenix:
Wobei.. wäre das nicht mit einem Array leichter zu erreichen?
Hmpf?
[...]
In 1.1 kannst du also entweder mit der ArrayList arbeiten [...]
Was'n nu? Erst schockiert tun und dann das gleiche Vorschlagen?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 13:23
Zitat von Phoenix:
Was'n nu? Erst schockiert tun und dann das gleiche Vorschlagen?
Zu heiß geduscht, heut' früh?
Das eine ist ein BCL Klasse, die intern ihre Daten in einem Array verwaltet. (Klassisches verdoppeln wenn Count >= Capacity), das andere taugt höchstens was um sich am generierten IL zu belustigen.
Oder in Delphi-Speak: ArrayList == TList mit Object statt Pointer als Elementtyp.

System.Array ist immutable, will heißen eine Instanz mit 5 Elementen kann nicht plötzlich 6 haben.
Delphi löst das indem es Zwischenvariablen einbaut und alles immer schön hin und her schubst.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von jmit
jmit

Registriert seit: 24. Feb 2005
Ort: Langelsheim
383 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 13:36
Hallo,

Zitat von mkinzler:
Sie basieren ja auf Zeigern, welche man vermeiden sollte
Was spricht gegen Zeiger, warum sollte man diese vermeiden?
Sie werden wohl unter Delphi/Pascal nicht so oft verwendet, aber dies ist ja kein Grund diese ganz zu meiden.

Gruß Jörg
Windows 7, Firefox Version 3.6, Turbo Delphi für Win32
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 13:40
Zitat:
Was spricht gegen Zeiger, warum sollte man diese vermeiden?
Es get hier um .Net
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#16

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 13:41
Zitat von jmit:
Zitat von mkinzler:
Sie basieren ja auf Zeigern, welche man vermeiden sollte
Was spricht gegen Zeiger, warum sollte man diese vermeiden?
Sie werden wohl unter Delphi/Pascal nicht so oft verwendet, aber dies ist ja kein Grund diese ganz zu meiden.
Wir reden hier von Delphi.NET, und das ist nunmal Typsicher. Und bei einem Pointer irgendwo in den Speicher hat man nunmal keine Ahnung, auf was für ein Datentyp da gezeigt wird.

Ergo -> Typunsicher, daher unsicherer Code, und damit nicht im Sinne von .NET.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
ulrich.b

Registriert seit: 21. Sep 2005
Ort: Kattau (AT)
79 Beiträge
 
Delphi 2009 Professional
 
#17

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 13:44
Zitat von jmit:
Was spricht gegen Zeiger, warum sollte man diese vermeiden?
Sie werden wohl unter Delphi/Pascal nicht so oft verwendet, aber dies ist ja kein Grund diese ganz zu meiden.
... um Typsicherheit zu garantieren (Pointer sind nur (Speicher)Adressen und haben keinen Typen).

http://de.wikipedia.org/wiki/Typsicherheit
  Mit Zitat antworten Zitat
Raffigator

Registriert seit: 5. Mär 2007
Ort: Wedel
46 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 15:13
Also ist nun ArrayList das Stichwort? Das ganze sollte natürlich schon performant sein...Da die Listen auch relativ lang werden könnten im Programm, bietet sich dann wohl die ArrayList an, richtig?
Raphael
MfG
Raphael
  Mit Zitat antworten Zitat
Benutzerbild von jmit
jmit

Registriert seit: 24. Feb 2005
Ort: Langelsheim
383 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 15:26
Zitat von Phoenix:
Zitat von jmit:
Zitat von mkinzler:
Sie basieren ja auf Zeigern, welche man vermeiden sollte
Was spricht gegen Zeiger, warum sollte man diese vermeiden?
Sie werden wohl unter Delphi/Pascal nicht so oft verwendet, aber dies ist ja kein Grund diese ganz zu meiden.
Wir reden hier von Delphi.NET, und das ist nunmal Typsicher. Und bei einem Pointer irgendwo in den Speicher hat man nunmal keine Ahnung, auf was für ein Datentyp da gezeigt wird.

Ergo -> Typunsicher, daher unsicherer Code, und damit nicht im Sinne von .NET.
Habt ja Recht, sollte genauer lesen.
Windows 7, Firefox Version 3.6, Turbo Delphi für Win32
  Mit Zitat antworten Zitat
Raffigator

Registriert seit: 5. Mär 2007
Ort: Wedel
46 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Dynamische Datenstrukturen in .NET

  Alt 30. Apr 2007, 15:55
Hmm, ArrayList ist ja gut und schön, aber wie kann ich dort eine Liste von Records erstellen?
Delphi-Quellcode:
...
type
 TMyRecord = record
    //mehrere Daten
  end;
...
var
 MyList : ArrayList;
 MyRecord : TMyRecord;
...
begin
...
 MyList := ArrayList.Create;
 MyList.Add(MyRecord);
...
end;
Lässt sich ja problemlos kompilieren, aber wie kann ich hinterher auf die Daten in meinem Array zugreifen?

MyList[0].RecordTeil funktioniert ja nicht...
Raphael
MfG
Raphael
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 09:56 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