Are changes of a member reflected in other references to it?

If I take an object value from a class and pass it as the value for a field in a different class, will changes done to that object value be reflected in both classes should either one make changes to it.

Example:
`


public class SharedClass
{

  int i;

}

public class A

{

  public SharedClass sharedClass = new SharedClass();

  void Main ()

  {

    sharedClass.i = 4;

  }

public class B

{

  public SharedClass othersharedClass = A.sharedClass;

  void Main ()

    {

      othersharedClass.i = 5;

    }

  }

}

`

pass by value will not change no only pass by reference.

basically changing one value will not automatically change another.
The only time your going to get that is pass by reference. Thats because in the case of pass by reference what your really doing is having one value that multiple objects look to for information.

so

A.value = B.value

b changes

A does not change

A.reference = B.value

B changes

A is looking right at B so so the A.reference changes