![]() |
Re: Dynamische Datenstrukturen in .NET
Zitat:
Records machen in .Net nur da Sinn, wo man
In jedem anderen Fall sind ValueTypes mit Extrakosten verbunden. Du kannst value types wunderbar wie primitive Werte behandeln, ein Int32 kann vom JIT, je nach Situation, wie ein normaler, nativer Int32 benutzt werden. Du kannst sie auch wie ein Objekt benutzen, was du hier scheinbar willst. (ArrayList hält System.Object-Referenzen) Aber letzteres erfordert, dass der Record wert durch Boxing zu einem Referenzwert wird. Zitat:
Delphi-Quellcode:
Wobei du hier aufpassen musst. .Net ist wirklich type safe: Du kannst nicht die Königin auf Int boxen. ;)
DeinTyp(deineListe[0]).DoSomething();
Ein type cast á la DeinTyp(wert) gibt dir entweder einen Wert von DeinTyp zurück, oder wenn "wert" sich nicht umwandeln lässt, nil. wert as DeinTyp wird eine Exception werfen. Ersteres ist bestimmt Ursache #1 für all die netten "Object reference not set to an instance of an object"-Meldungen, die man so in freier Natur vorfindet. :mgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz