Gibt es eine neue Platzierung in .NET (wie C++)?.NET-Platzierung Neu
Mit anderen Worten, wenn ich zuteilen einige Speicher in VB.NET
Dim Foo(64) as Byte
ich Instanz BarClass im Foo Speicher wollen (so etwas wie ...)
Dim Bar as New BarClass(Foo)
Aber ich sehe keine Syntax dafür.
Stattdessen habe ich so etwas wie zu tun:
Dim Foo(1) as BarClass
Foo(0) = new BarClass(x, y, z)
Foo(1) = new BarClass(x, y, z)
Interessant, würde ich sagen, dass einmal GC instanziert den Speicher noch bewegen könnte, wie die Referenz sowieso aktualisiert wird. Also, was ist eine gute (effiziente) Syntax, um ein Array von Klassen zu initialisieren ... Ich weiß, ich weiß, eine Liste verwenden. –
Initialisieren Sie sie einfach in einer engen Schleife. Ein Vorteil des GC (im Vergleich zu C++) ist, dass die Speicherinitialisierung von Klassen normalerweise VIEL schneller ist, so dass diese Arten von Spielen keine Rolle mehr spielen. Der GC wird automatisch Dinge in den kompakten Speicher verschieben, und die Zuweisungen sind normalerweise nur ein Löschen von Bits, nicht eine vollständige Speicherzuweisung des Betriebssystems, also ist es in den meisten Fällen viel schneller als C++. –