Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
A shallow copy creates a new instance of the same type as the original object, and then copies the non-static fields of the original object. If the field is a value type, a bit-by-bit copy of the field is performed. If the field is a reference type, the reference is copied but the referred object is not; therefore, the reference in the original object and the reference in the clone point to the same object.
A deep copy of an object duplicates everything directly or indirectly referenced by the fields in the object