Classes are always References (structs are Value types) and References are always copies of the reference, not the values within the class itself unless a copy constructor is created, and used explicitly:
http://msdn.microsoft.com/en-us/library/ms173116(v=vs.80).aspx[
^]
So an assignment of a reference value to another reference variable will always result in two references that "point" at the same data instance:
MyClass m1 = new MyClass();
m1.Name = "Joe";
MyClass m2 = m1;
Console.WriteLine (m1.Name + " = " + m2.Name);
m1.Name = "Mike";
Console.WriteLine (m1.Name + " = " + m2.Name);
Will output:
Joe = Joe
Mike = Mike