Public Class ClassA Implements ICloneable Private _prop1 As String Public Function Clone() As Object Implements System.ICloneable.Clone Return Me.MemberwiseClone() End Function End Class
Public Class ClassA Implements ICloneable Private _prop1 As String Public Function Clone() As Object Implements System.ICloneable.Clone Dim monClone As New ClassA() monClone._prop1 = Me._prop1 Return monClone End Function End Class
monClone._prop1 = Me._prop1
Si un champ est un type valeur, il est copié bit par bit. S'il s'agit d'un type référence, la référence est copiée, mais l'objet référencé ne l'est pas. Par conséquent, l'objet d'origine et son clone se réfèrent au même objet.
Public Class ClassA Implements ICloneable Private _monB As ClassB Public Function Clone() As Object Implements System.ICloneable.Clone Return Me.MemberwiseClone() End Function End Class Public Class ClassB Implements ICloneable Private _prop1 As String Public Function Clone() As Object Implements System.ICloneable.Clone Return Me.MemberwiseClone() End Function End Class
Public Class ClassA Implements ICloneable Private _monB As ClassB Public Function Clone() As Object Implements System.ICloneable.Clone Dim monClone As New ClassA() monClone._monB = CType(Me._monB.Clone(), ClassB) Return monClone End Function End Class Public Class ClassB Implements ICloneable Private _prop1 As String Public Function Clone() As Object Implements System.ICloneable.Clone Return Me.MemberwiseClone() End Function End Class
Using ms As New MemoryStream() Dim frm As New BinaryFormatter() frm.Serialize(ms, list1) ms.Seek(0, SeekOrigin.Begin) list2 = CType(frm.Deserialize(ms), List(Of ClassA)) End Using
Private Sub copylist() list2.Clear() For Each item As ClassA In list1 list2.Add(CType(item.Clone(), ClassA)) Next End Sub
Public Class ClassA Implements ICloneable Private _prop1 As String Public Function Clone() As Object Implements System.ICloneable.Clone Dim monClone As New ClassA() monClone._prop1 = Me._prop1 Return monClone End Function End Class
For Rt As Integer = 0 To ListBox1.Items.Count - 1 ListBox2.Items.Insert(Rt, ListBox1.Items.Item(Rt)) Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question