swjam wrote:
it contradicts the fact that objects are pass by reference?
Well, actually everything is passed by value (unless you specify otherwise). When you pass an object you are actually passing the reference to the object, and as the reference is a value type it's passed by value, i.e. the value of the reference is copied.