For any reference type, this is normal - you passed a reference to the object, but there is only one object, so the changes are visible to the caller.
The main time that won't work is for "structs" (value types) - but they really shouldn't be mutable anyway (that is, they shouldn't have plausible properties).
If you need to do this with a structure, you can add "ref" - ie
public void MyFunction(ref MyMutableStruct whatever) { whatever.Value = "Hi.";
Marc gravell
source share