Basic Object assigning problem (Byval not working)

Dear All,

I have Obj1 and Obj2 as objects of class1. When I access these 2 objects independently it works fine but when I say set Obj1=Obj2 it gets assigned by REF. So when I can Obj1's property Obj2's property also gets set.

Now I dont want this so I have written an function which accepts parameters as BYVAL and returns the objects which I again assigns to Obj1. Eg.


Function AssignByVal (Byval vdata as Object) as Object
   set AssignByVal = vdata
end sub

But this not works. It only works when I assign byval using piece - by piece method.
ShailengAsked:
Who is Participating?
 
DoknjasConnect With a Mentor Commented:
When you set an object reference to another object, both references point to the same object.  If you want to return a copy, then you have to do that yourself by implementing your own copy constructors - serialization will simplify this.

Passing the original object ByVal just ensures that the original object reference will not be pointing elsewhere after the method returns to the calling method.
0
 
Éric MoreauConnect With a Mentor Senior .Net ConsultantCommented:
You need to implement a Clone method. See an article I wrote on the subject: http://www.utmag.com/July2003/Page8.asp
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.