does Array.Concat() and Array.Push() add objects by Value rather than by Reference ?

because that's what it appears to do (even though it doesn't make much sense), but that's not what I want.

according to http://answers.unity3d.com/questions/6599/add-a-copy-of-a-object-to-array what I'm saying here is not true :s

I add an object to an array, then I move it, and I notice I have 2 objects now, one on the new position, and one on the old.

never mind, it appears the problem was caused by some other mistakes, which made it seem like the object was beeing cloned. so it actually had nothing to with abjects beeing passed by value

so, No, Array.Concat() and Array.Push() add objects by reference, not by value