Gerard,
Strings, integers (all numbers), booleans ... those would all be the actual values, but any other object would be a reference. There's probably a list of which is which (value type vs reference type) somewhere ... I gotta get ready to go to the office right now, but I'll see if I can dig it up later.
~~Bonnie
>Hi Bonnie.Thanks for yuor reply.
>
>That makes sense, but probably a bit more difficult to implement than VFP.
>For the other types, can I say a=b and get a 'Copy' for e.g.
>
>lcMyStringB = lcMyStringA
>lnMyNumB = lnMyNumA (For each of numeric types)
>llMyBoolB = llMyBoolA
>loMyObjB = loMyObjA
>etc.
>
>In above examples, is a 'Copy' made or a 'Reference'
>
>Regards,
>
>Gerard
>
>
>>Gerard,
>>
>>This is because the arrays are really object pointers (as are most things in .NET ... an integer itself isn't, but an array of them are). When you assign your 1st array to your 2nd array, you're merely assigning the pointers, so that my_array2 *is* my_array and not merely a copy. I assume you wanted a copy of my_array, and so you need to use the Array.Copy() method.
>>
>>~~Bonnie
>>
>>
>>
>>>I have following:
>>>public int [] my_array = [1,2,3,4,5}
>>>
>>>Then in a method I have
>>>int[] my_array2
>>>my_aary2 = my_array
>>>
>>>But if I amend my_array subsequently, my_array2 is also amended
>>>
>>>Anybody know why this is happening and if there is a way around it ?
>>>
>>>Regards,
>>>
>>>Gerard