Autor Beitrag
Hajoseb
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 42



BeitragVerfasst: So 24.06.07 20:01 
Hallo.

Ich habe mir mittlerweile das Buch zur Gemüte geführt und mein erstes Delphi-Programm in c# übersetzt (es läuft :D ), aber trotzdem habe ich noch eine Verständnisfrage ...

Die unterschieder zwischen class und struct kann ich ja nachlesen, aber ich konnte bisher keine "verständliche" Antwort darauf finden, wann ich ein struct und wann ich eine class einsetzen sollte.

Man kann zwar alles mit class machen aber struct soll ja auch schneller sein, aber nicht vererbbar ... nur, nach welchen Kriterien entscheide ich ???.

Wenn man also von der Vererbung absieht, wann nimmt man ein struct?

Mfg Hajoseb
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mo 25.06.07 15:04 
user profile iconHajoseb hat folgendes geschrieben:
Man kann zwar alles mit class machen aber struct soll ja auch schneller sein, aber nicht vererbbar ... nur, nach welchen Kriterien entscheide ich ???.
Value types sind schneller wenn sie ausschließlich auf dem Stack benutzt werden.
Value types im Heap sind ziemlich lahm, da sie erst in eine "Box" gesteckt werden müssen, und somit als Referenzen benutzt werden.
Im Normalfall sind Klassen das Mittel für dich um Daten und Modelle abzubilden.
Value types werden interessant wenn man wirklich Wertetypen bauen will, oder für Dinge, die halt nur kurzzeitig im Stack existieren.
Hajoseb Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 42



BeitragVerfasst: Mo 25.06.07 15:19 
Wenn ich also in einem 3D-Array von vielen Stellen aus auf die selben Daten zeigen möchte (je eine Bitmap mit ein paar Zusatzinfos) ist es also besser, diese in einer class zu packen, da auf eine class eh Zeiger zeigen. Richtig ?
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mo 25.06.07 16:26 
Den §d array solltest du aber nicht als homogenen Bereich anegen, sondern lieber auf jagged arrays ausweichen: Miep[][][]
Warum? Ein mzArray ist ein abstraktes Konstrukt, dass wesentlich aufwendiger als ein 1-dimensionales, 0-indiziertes szArray, ist.
Ein jagged array, ist ein array eines arrays eines arrays von XYZ. Jeder Array kann dabei als szArray kompiliert werden.
Hajoseb Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 42



BeitragVerfasst: Mo 25.06.07 19:55 
Ich vermute mal, das szArray ist das "klassische" 2-Dimensionale Array, mit (s)palte und (z)eile. :D

Das mit den jagged Arrays scheint mir einleuchtend. Ich werde mal versuchen es damit umzusetzen :).

Als Inhalte empfiehlt sich dann wohl eine "class", da gleiche Inhalte oft im Array vorkommen. :?: :!: :?:

Mfg Hajoseb