比我已经有一个类实例了,赋予了一些基本参数以后,我要复制10份,然后在根据不同情况对这10个实例进行操作。
class 1:
public i as integer;button_click:
dim a as class1
dim b(0 to 9) as class1
dim j as integerset a = new class1
a.i = 10for j = 0 to 9
'在这里给b的每个元素付一个新的a
next j
a.i = 100 '这里不会影响到b里面的内容

解决方案 »

  1.   

    for j = 0 to 9
        SET B(J)=A
        '在这里给b的每个元素付一个新的a
    next j
      

  2.   

    For j = 0 To 9
            Set b(j) = New Class1
            b(j).i = a.i
     Next
      

  3.   

    用Set语句是不行的,Set语句并不是单纯的变量赋值语句,它不像赋值语句一样产生对象的一个拷贝,而是把一个对象变量设定为对象指针,指向不同对象变量
      

  4.   


        你真正需要的是用VB模拟一个构造函数。参考此贴中我的回复:    http://expert.csdn.net/Expert/topic/2865/2865225.xml?temp=.3059351
      

  5.   

    你先用CopyMemory试试,现在我有事,一会再细说
      

  6.   

    不行,对象的复制都是引用复制,不是值形式的。有两种方法复制对象(不过都是复制属性,从而达到复制效果):接口的Clone方法;使用PropertyBag复制属性包。
    参考这里:http://www.devx.com/vb2themax/Tip/18378还有一种方法:直接用CopyMemory,但是无法获取对象在内存中的占位大小(VB里面没有与sizeof等价的函数)
      

  7.   

    to pigpag(噼里啪啦 - 努力开发狂看书) 
    示例可以,但是我自定义的类不行,好像少了什么设置。同样的调用方法出了这样的错误:
    Illegal parameter. Can't write object because is does not support persistence.PropertyBag好像用在做控件属性用的,不太清楚,还请帮忙看看
      

  8.   

    to victorycyz(中海) 
    要是有好多属性和参数要设,这个方法是在太累人了#_#