Why should I implement ICloneable in c#?
.net, c#, cloneable, icloneable
Solution
You shouldn't. Microsoft recommends against implementing `ICloneable` because there's no clear indication from the interface whether your `Clone` method performs a "deep" or "shallow" clone.
See this blog post from Brad Abrams back in 2003(!) for more information.
Problem
Can you explain to me why I should inherit from `ICloneable` and implement the `Clone()` method? If I want to do a deep copy, can't I just implement my method? Let's say `MyClone()`? Why should I inherit from `ICloneable`? What are the advantages? Is it just a matter of making code "more readable"?