我的编程空间,编程开发者的网络收藏夹
学习永远不晚

VB.NET对象克隆的主要思想是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

VB.NET对象克隆的主要思想是什么

VB.NET对象克隆的主要思想是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

VB.NET编程语言中对对象的操作是比较重要的一个操作技巧,对于一个具有面向对象特性的编程语言,我们要想彻底掌握这一语言的应用,就应当把这些特性把握好。在这里就先来一起了解一下VB.NET对象克隆的一些基本概念。

在3DMAX里面,做好一个物体(父物体)以后,可以选择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”,理由很简单。它们指向同一块内存空间。

  • VB.NET结构变量的具体操作技巧分享

  • VB.NET创建新变量技巧分享

  • VB.NET固定值变量常用创建方法浅谈

  • VB.NET创建数组正确实现方法浅谈

  • VB.NET初始化数组变量实现技巧分享

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

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

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

主要思路:

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

CResume类的代码:

Imports System.IO  Imports System.Runtime.Serialization.Formatters  < Serializable()> Public Class CResume   &lsquo;注意类前面加上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  Public Property Name() As String   Get  Return m_Name  End Get  Set(ByVal NewName As String)  m_Name = NewName End Set  End Property  Public Function Clone() As CResume  Dim BF As New Binary.BinaryFormatter()  Dim MS As New MemoryStream()  BF.Serialize(MS, Me)  MS.Position = 0 Return (CType(BF.Deserialize(MS), CResume))  End Function  End Class

在Form里面可以这样调用

Dim Resume1 As New CResume()  Dim Resume2 As New CResume()  Resume1.Name = "AAA" Resume1.Address = "office:smarttags" />Shanghai,China"  Resume2 = Resume1.Clone()  Resume1.Name = "BBB" Resume1.Address = "Beijing,China" Debug.WriteLine(Resume1.Name) &lsquo;依然是AAA  Debug.WriteLine(Resume1.Address)

总结:主要调用了VB.NET的流和序列化技术,使得VB.NET对象克隆免去了繁琐的读写操作,也简化了代码。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

VB.NET对象克隆的主要思想是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

VB.NET对象克隆的主要思想是什么

VB.NET对象克隆的主要思想是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。VB.NET编程语言中对对象的操作是比较重要的一个操作技巧,对于一个具有面向对
2023-06-17

Java克隆对象的特性是什么

本篇内容介绍了“Java克隆对象的特性是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在java面向对象的编程当中,要复制引用类型的对象
2023-06-17

Java引用对象深度克隆的方法是什么

在Java中,要实现对象的深度克隆,你可以使用以下方法之一:1. 实现`Cloneable`接口并重写`clone()`方法:```javapublic class MyClass implements Cloneable { pri
2023-09-27

VB.NET对象浏览器的作用是什么

这篇文章将为大家详细讲解有关VB.NET对象浏览器的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。VB.NET对象浏览器可以使用户通过一些组件(components)校验和发现一些
2023-06-17

js对象指的是什么意思

这篇文章将为大家详细讲解有关js对象指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript的特点1.JavaScript主要用来向HTML页面添加交互行为。2.JavaScrip
2023-06-14

php面向对象指的是什么意思

这篇文章主要为大家展示了“php面向对象指的是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php面向对象指的是什么意思”这篇文章吧。在php中,面向对象就是将要处理的问题抽象为对象,然
2023-06-20

redis要序列化对象的原因是什么

Redis要序列化对象的原因有以下几点:1. 数据持久化:Redis是一个内存数据库,如果不进行序列化,那么数据只会存在于内存中,一旦服务器重启或者发生崩溃,数据就会丢失。通过序列化可以将数据转化为字节流,存储在磁盘上,实现数据持久化。2.
2023-09-01

云服务器的主要优势是什么意思

云服务器是一种虚拟化计算平台,它能够提供更快的计算速度、更低的成本和更高的可靠性。主要有以下几个优点:更快的计算速度:云服务器可以在本地计算机中运行,从而使得数据处理和响应速度更快。更低的成本:与物理服务器相比,云服务器可以更快地交付和提供服务,同时提供更低的成本。更高的可靠性:由于云服务器的虚拟化技术,用户可以更加灵活地选择虚拟资源或者物理服务器,因此可靠性更高。总之,云服务器的
2023-10-26

C++中面向对象编程指的是什么意思

C++中的面向对象编程指的是一种程序设计范式,其中程序由对象组成,每个对象包含数据和操作数据的函数。面向对象编程的核心概念包括封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。通过面向对象
C++中面向对象编程指的是什么意思
2024-03-11

云服务器的主要性能参数是什么意思

云服务器的主要性能参数是指在计算机或服务器中用于评估其性能的指标,这些指标包括I/O性能、内存、网络带宽、存储等方面。下面列出一些常见的主要性能参数:I/O性能:指计算机或服务器内部的读写操作数量。I/O性能可以通过使用缓冲区来提高性能。内存:通常用来存储数据。内存大小可以通过更大的内存槽来提高性能。网络带宽:指计算机或服务器之间传输数据所用的带宽。如果网络带宽不足,计算机或服务器之间的
2023-10-26

automation服务器不能创建对象指的是什么意思

这篇文章主要介绍automation服务器不能创建对象指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!automation服务器不能创建对象是因为有些网站的脚本处理和相关认证不是很规范,导致当前浏览器的安
2023-06-20

JVM中判定对象需要回收的方法是什么

本文小编为大家详细介绍“JVM中判定对象需要回收的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JVM中判定对象需要回收的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。引用计数法每个对象上都
2023-06-30

计算机安全中的实体安全主要是什么意思

小编给大家分享一下计算机安全中的实体安全主要是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!计算机安全中的实体安全主要是指:计算机物理硬件实体的安全。实体
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录