StructPerformance: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Justus (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
{{BA|Greitschus|Wenn man den Artikel noch etwas aufbläht, kann man ihn umbenennen und als Artikel für "by Value" und "by Reference" verwenden. Ich denke, das wäre sinnvoller, als nur auf das Problem mit Structs einzugehen.}} | {{BA|Greitschus|Wenn man den Artikel noch etwas aufbläht, kann man ihn umbenennen und als Artikel für "by Value" und "by Reference" verwenden. Ich denke, das wäre sinnvoller, als nur auf das Problem mit Structs einzugehen.}} | ||
{{BA|Justus|Es gibt noch das Problem des Boxings in Listen u.ä. | {{BA|Justus|Es gibt noch das Problem des Boxings in Listen u.ä. | ||
<source lang="csharp"> | |||
Point p; | Point p; | ||
p.x = p.y = 1; | p.x = p.y = 1; | ||
Object o = p; // Verpackt den Punkt in ein Object, mit Allozieren für Objekt, Kopieren von p nach o | Object o = p; // Verpackt den Punkt in ein Object, mit Allozieren für Objekt, Kopieren von p nach o | ||
p = (Point)o; // Entpackt den Punkt und kopiert ihn dann in den Platz für p. | p = (Point)o; // Entpackt den Punkt und kopiert ihn dann in den Platz für p. | ||
</source> | |||
Das kann also auch so relativ schnell recht lahm werden. Das gilt auch, wenn man Point in Listen speichert. | Das kann also auch so relativ schnell recht lahm werden. Das gilt auch, wenn man Point in Listen speichert. | ||
}} | }} | ||
