- ·上一篇文章:重新获得Windows用户名
- ·下一篇文章:使用SendMessage来实现剪切、复制和粘贴
使用ICloneable接口来支持深度复制
喜欢这些内容嘛,请告诉你身边的朋友,易下载中心-QQ资源-itnetcn.com一起享受这份乐趣,本站内容来源互联网
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
很多基于对象的应用程序需要具有向你提供创建对象复件的能力。例如,你可能需要为一个自定义的对象创建复件。但是,你不能只是简单地通过将对象分配给新的变量来复制一个对象,因为这样就有两个变量指向同一个对象(这也叫做镜像复件,shadow copy)。相反,你需要对对象进行深度复制(deep copy),也就是为它创建一个新的实例,并复制所有的属性。
为实现这个目的,Visual Basic .NET在System.ICloneable里提供了一个标准的接口。.NET框架里的很多对象都能够识别并使用ICloneable接口,从而进行对对象的深度复制。
下面的代码是实现ICloneable接口的一个例子:
Public Class CopyMe
Implements ICloneable
Private strValue = "Yes"
Public Function Clone() As Object Implements _
System.ICloneable.Clone
Dim objCopy As CopyMe
objCopy = New CopyMe()
objCopy.Value = Me.Value
Return objCopy
End Function
Public Property Value() As String
Get
Return strValue
End Get
Set(ByVal Value As String)
strValue = Value
End Set
End Property
End Class
Clone这个方法为对象创建了一个新的实例,并将其属性的值按照当前对象的值来设置,再将其返回。

