当前位置:中国易下载软件教材中心文章中心编程语言VB语言 → 使用ICloneable接口来支持深度复制

使用ICloneable接口来支持深度复制

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2007-8-21 1:02:09
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
喜欢这些内容嘛,请告诉你身边的朋友,易下载中心-QQ资源-itnetcn.com一起享受这份乐趣,本站内容来源互联网
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   很多基于对象的应用程序需要具有向你提供创建对象复件的能力。例如,你可能需要为一个自定义的对象创建复件。但是,你不能只是简单地通过将对象分配给新的变量来复制一个对象,因为这样就有两个变量指向同一个对象(这也叫做镜像复件,shadow copy)。相反,你需要对对象进行深度复制(deep copy),也就是为它创建一个新的实例,并复制所有的属性。 dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
为实现这个目的,Visual Basic .NET在System.ICloneable里提供了一个标准的接口。.NET框架里的很多对象都能够识别并使用ICloneable接口,从而进行对对象的深度复制。dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
下面的代码是实现ICloneable接口的一个例子:dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
Public Class CopyMedpY海岸线网络安全资讯站
    Implements ICloneabledpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
    Private strValue = "Yes"dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
    Public Function Clone() As Object Implements _dpY海岸线网络安全资讯站
            System.ICloneable.ClonedpY海岸线网络安全资讯站
        Dim objCopy As CopyMedpY海岸线网络安全资讯站
        objCopy = New CopyMe()dpY海岸线网络安全资讯站
        objCopy.Value = Me.ValuedpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
        Return objCopydpY海岸线网络安全资讯站
    End FunctiondpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
    Public Property Value() As StringdpY海岸线网络安全资讯站
        GetdpY海岸线网络安全资讯站
            Return strValuedpY海岸线网络安全资讯站
        End GetdpY海岸线网络安全资讯站
        Set(ByVal Value As String)dpY海岸线网络安全资讯站
            strValue = ValuedpY海岸线网络安全资讯站
        End SetdpY海岸线网络安全资讯站
    End PropertydpY海岸线网络安全资讯站
End Class dpY海岸线网络安全资讯站
dpY海岸线网络安全资讯站
Clone这个方法为对象创建了一个新的实例,并将其属性的值按照当前对象的值来设置,再将其返回。