vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Struktur innerhalb eines Arrays kopieren 
Autor: Swiss Ueli
Datum: 12.05.07 14:22

Hallo Snoopy,

danke für deinen Beitrag, du hast mir nun etwas auf die Sprünge gebracht....

Denn dein Beispiel funktioniert in meinem Programm auch nicht.
Aber dank deinem Stichwort "flache Kopie" und das implementieren der Clone Funktion über die ICloneable Interface, habe ich im Netz nun etwas recherchiert, über die Kopier-Arten...

Und ich brauche nämlich keine flache Kopie, sondern eine tiefe Kopie... Die Funktion MemberwiseClone erzeugt gemäss Infos im Netz eine flache Kopie (shallow copy), aber ich brauche eine tiefe Kopie (deep copy), damit die Daten unabhängig bleiben...



Für eine tiefe Kopie habe ich die obige Struktur sinngemäss angepasst:
<Serializable()> Public Structure structTest
   Implements ICloneable
 
   Dim a As Integer
   Dim b As Integer
   Dim c As Integer
   Dim o As SubData
 
   Public Function Clone() As Object Implements System.ICloneable.Clone
        Dim CloneObject As Object
        ' Create a memory stream and a formatter.
        Dim ms As New IO.MemoryStream(1000)
        Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
        ' Serialize the object into the stream.
        bf.Serialize(ms, Me)
        ' Position streem pointer back to first byte.
        ms.Seek(0, IO.SeekOrigin.Begin)
        ' Deserialize into another object.
        CloneObject = bf.Deserialize(ms)
        ' Release memory.
        ms.Close()
 
        Return CloneObject
   End Function
End Structure
So, mit der obigen Clone-Funktion funktioniert das Programm nun wie wunschgemäss!


Ach, mir ist noch was in den Sinn gekommen: Wann macht .NET eine shallow copy und wann eine deep copy?
Bisher dachte ich, dass bei einer Struktur immer ein deep copy macht, da es ein Valued Type ist. Deshalb hatte ich in meinem Fall eine Struktur genommen, anstelle einer Klasse.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Struktur innerhalb eines Arrays kopieren1.222Swiss Ueli11.05.07 18:14
Re: Struktur innerhalb eines Arrays kopieren822Snoopy11.05.07 19:00
Re: Struktur innerhalb eines Arrays kopieren1.192Swiss Ueli12.05.07 14:22
Re: Struktur innerhalb eines Arrays kopieren756Melkor11.05.07 20:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel