# Why is cloning (in .NET) so difficult?

In the past I had the need to clone objects, only to find that they don't implement a <code>Clone()</code> method, forcing me to do it by hand (create a new instance and copy all properties from the original to the new one). Why isn't cloning as easy as duplicating the memory block the object is allocated in, and thus have the Clone method in the <code>object</code> class, having all classes in .NET inherit it?

By: