VB.Net/Class/Clone
Clonable Object
<source lang="vbnet"> Imports System Public Class MainClass
Shared Sub Main() Dim anArray() As String = {"www.vbex.ru"} Dim a As New CloneableObject(anArray) a.DisplayData() Dim b As CloneableObject b = CType(a.Clone(), CloneableObject) Dim newData As String = "Hi" b.ChangeData(newData) b.DisplayData() a.DisplayData() End Sub
End Class Public Class CloneableObject
Implements ICloneable Private m_Data() As String Public Sub New(ByVal anArray() As String) m_Data = anArray End Sub Public Function Clone() As Object _ Implements ICloneable.Clone Dim temp() As String temp = CType(m_Data.Clone, String()) "clone the array Return New CloneableObject(temp) End Function Public Sub DisplayData() Dim temp As String For Each temp In m_Data Console.WriteLine(temp) Next End Sub Public Sub ChangeData(ByVal newData As String) m_Data(0) = newData End Sub
End Class
</source>
Member Wise Clone
<source lang="vbnet"> Imports System Imports System.Collections
Public Class MainClass
Shared Sub Main() Dim anArray() As String = {"www.vbex.ru"} Dim a As New CloneableObject(anArray) a.DisplayData() Dim b As CloneableObject b = a.Clone() Dim newData As String = "New Data" b.ChangeData(newData) b.DisplayData() a.DisplayData() End Sub
End Class Public Class CloneableObject
Private m_Data() As String Public Sub New(ByVal anArray() As String) m_Data = anArray End Sub Public Sub DisplayData() Dim temp As String For Each temp In m_Data Console.WriteLine(temp) Next End Sub Public Sub ChangeData(ByVal newData As String) m_Data(0) = newData End Sub Public Function Clone() As CloneableObject Return CType(Me.MemberwiseClone, CloneableObject) End Function
End Class
</source>