The words cloning and copy can be used very misleading by those who are writing about it regarding the Visual Studio Net frameworks.
A copy can be sometimes a real complete copy of all the data
DataTable dt = dataview.ToTable(); (in fact a so called deep copy)
But also a shallow copy or even a clone.
The later one is something the same as a new type, but then with all kind of properties set.
The shallow copy is the same as the clone, but then with also all references to the old table set.
(so a change in the shallow table results also in a change in the original table as long as the object already did exist)
If you want to make a deep copy than is mostly your only possibility to serialize and to deserialize the object.