Entwickler-Ecke
C# - Die Sprache - struct oder class ... was nimmt man wann ???
Hajoseb - So 24.06.07 20:01
Titel: struct oder class ... was nimmt man wann ???
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 - Mo 25.06.07 15:04
Titel: Re: struct oder class ... was nimmt man wann ???
Hajoseb 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 - 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 - 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 - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!