Internally, C# supports shallow cloning of every object.
Externally, it must be decided on a class-by-class basis if cloning is supported.