gpt4 book ai didi

vb6 - 如何在VB6中克隆一个对象

转载 作者:行者123 更新时间:2023-12-04 17:29:15 30 4
gpt4 key购买 nike

我正在尝试自动克隆一个对象,而不必实例化一个新对象并手动复制每个变量。

我记得那天(当我每天都在做 VB6 时)我想出了一种使用 PropertyBag 克隆对象的方法,这非常酷。但是我已经丢失了代码并且不记得该怎么做了。

有人记得或有其他方法吗?

最佳答案

this你在找什么?文章复制如下供后人使用。

使用 PropertyBag 序列化数据

您可以通过将数据放入 PropertyBag 对象,然后读取 PropertyBags Contents 属性来快速序列化数据。此属性实际上是一个 Byte 数组,它是 PropertyBag 对象中数据的串行表示。您可以将此字节数组用于多种用途,包括一种通过 DCOM 进行数据传输的有效方法:

Private Function PackData() As String
Dim pbTemp As PropertyBag

'Create a new PropertyBag object
Set pbTemp = New PropertyBag
With pbTemp
'Add your data to the PB giving each item a
'unique string key
Call .WriteProperty("FirstName", "John")
Call .WriteProperty("MiddleInitial", "J")
Call .WriteProperty("LastName", "Doe")

'Place the serialized data into a string
'variable.
Let PackData = .Contents
End With

Set pbTemp = Nothing
End Function

要检索序列化数据,只需创建一个新的 PropertyBag 对象并将序列化字符串设置为其 Contents 属性。将字符串转换为字节数组,然后将其分配给 Contents 属性:
Private Sub UnPackData(sData As String)
Dim pbTemp As PropertyBag
Dim arData() As Byte

'Convert the string representation of the data to
'a Byte array
Let arData() = sData

'Create a new PropertyBag object
Set pbTemp = New PropertyBag
With pbTemp
'Load the PropertyBag with data
Let .Contents = arData()

'Retrieve your data using the unique key
Let m_sFirstName = .ReadProperty("FirstName")
Let m_sMiddleInitial = _
.ReadProperty("MiddleInitial")
Let m_sLastName = .ReadProperty("LastName")
End With

Set pbTemp = Nothing
End Sub

迈克·库尔茨,麦基斯岩石,宾夕法尼亚州。

关于vb6 - 如何在VB6中克隆一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/580623/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com