Ask just about any developer and they will agree that cloning objects is a pretty standard practice. C++ has its copy constructors, …, and C# has it’s…ICloneable interface?
Okay, seriously, what is the deal with this thing? Is it supposed to perform a shallow copy, or a deep copy? Why doesn’t it output a cloned object that is strongly typed? Why is a half-completed interface a part of the .NET framework? Who allowed for this to be merged into the master branch? Does that person still have a job? Jokes aside, I am not the only one asking these questions. Do a simple Google search for the term “ICloneable” and you’ll find hundreds of thousands of questions all asking the same thing.