假设我有那个
Structure myStruct
Public myPoint As Point
Public myBool As Boolean
End Structure
如何制作该结构的副本/克隆?
我现在解决了这个问题, 我使用的代码示例:
Dim myStruct(1) As myStruct
myStruct(0).myPoint = New Point(10, 10)
myStruct(0).myBool = True
Dim myCopy(1) As myStruct
myCopy = myStruct
myCopy(0).myBool = False
myCopy(0).myPoint = New Point(11, 11)
这样,两个变量都改变了
我不得不做
myCopy = CType(myStruct.Clone, myStruct())
另一个问题,如果该结构被使用,比方说,10,000 次,我是否应该创建一个类来代替?
最佳答案
您正在查看每个结构 12 个字节,因此将它作为结构传递比在堆上创建对它的字大小的引用(换句话说,使用类)便宜
如果您需要一次访问所有 10,000 个,即使它们是结构,也会在堆上创建它们的数组。
复制结构就像创建声明另一个相同类型的结构并将第一个结构分配给第二个结构一样简单。
关于.net - 如何正确复制/克隆结构?我应该改用类(class)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/644861/