知识大全 VB.NET中对象的克隆[1]

Posted 物体

篇首语:天赋如同自然花木,要用学习来修剪本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB.NET中对象的克隆[1]相关的知识,希望对你有一定的参考价值。

VB.NET中对象的克隆[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在 DMAX里面 做好一个物体(父物体)以后 可以选择Edit菜单中的Clone 下面有三中选项 Copy(生成一个同模样的子物体 两者的操作互不影响) Instance(父子互动 父物体的操作同样影响子物体 子物体也一样) 还有一个Reference(暂不考虑)

    在VB NET 同样会碰到这样的问题 创建一个复杂对象(可能有很多种不同的数据类型)的实例 进行了一系列操作之后 想让一个中间变量或几个(另外的实例)保存它的状态 我们一般采取逐个变量赋值 有时候会写很长的代码 )这实际上就是上述的Copy问题 而对于Instance 很简单 新建一个实例 指向一下就可以了

    Dim objA As New CResume Cresume是一个自定义的记录简历信息的类

  然后进行初始化 比如

    objA Name= AAA

    objA Address= Shanghai China

    ……

    Dim objB As New CResume 新建一个实例

    objB=objA

  这样的话 objB跟objA有相同状态 值得注意的是objB改变一个Name 比如

    objB Name= BBB

  而实际上 objA的Name也变为 BBB 理由很简单 它们指向同一块内存空间

  下面我们重点讨论对象的Clone问题 即Copy以后的各个对象互不影响 关键是如何采用简单的方法解决我们的问题 MemoryStream和BinFormatter配合一下可以很简单的把对象克隆

  MemoryStream 我以前提到过 是支持存储区为内存的流

  BinFormatter 主要以二进制形式序列化和反序列化对象

  主要思路

  先用BinFormatter的Serialize方法 把对象存储在MemoryStream流中 (操作跟其他Stream一样) 然后Deserialize反序列化 得到一个流式的数据 转化为原来对象的类型就可以了 是不是很简单?呵呵 看一下代码再说

  CResume类的代码

  Imports System IO

  Imports System Runtime Serialization Formatters

  <Serializable()> Public Class CResume  

注意类前面加上Serializable()属性 否则不可以序列化

 

  Dim m_Name As String         姓名

  Dim m_Address As String         地址

  Public Property Address() As String

    Get

        Return m_Address

    End Get

    Set(ByVal NewAddress As String)

        m_Address = NewAddress

    End Set

  End Property

cha138/Article/program/net/201311/15510

相关参考

知识大全 VB.NET中有用的通用对象列表

VB.NET中有用的通用对象列表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  要使用List(

知识大全 VB.NET对象的广泛应用

VB.NET对象的广泛应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  代码重用简化了开发过程

知识大全 VB.NET的新的面向对象能力

VB.NET的新的面向对象能力  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  面向对象的编程在V

知识大全 VB.net 学习设计模式(中介者模式)

VB.net学习设计模式(中介者模式)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!将一些对象的相

知识大全 VB.NET中声音的播放

VB.NET中声音的播放  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由VB升级为NET后有些人

知识大全 在VB.NET编程中使用数组

在VB.NET编程中使用数组  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数组是程序中经常要使

知识大全 在VB.NET中进行抓屏

在VB.NET中进行抓屏  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!PublicClassFor

知识大全 vb.net中应用ArrayList 实例

vb.net中应用ArrayList实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Arra

知识大全 在VB.NET中检索文件信息

在VB.NET中检索文件信息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  您是否曾经希望了解如

知识大全 解决VB.net中ReadProcessMemory的问题

解决VB.net中ReadProcessMemory的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一