Why use Clone()?
What is main purpose of using Clone() in C#? What is the benefit of using it? Jon The idea is that using Clone you can create a new object of the same type as the one you invoke it on, without knowing the exact type of the object you are invoking it on . For example: void Test(ICloneable original) { var cloned = original.Clone(); } Here cloned is of the same runtime type as original , and you did not need to know what that type was to perform the cloning. However the usefulness of ICloneable is pretty much none, because it does not define the semantics of the clone operation: is it a shallow