MemberwiseClone(Object fromObject, Object toObject)
This is a function I would have wanted to use several times in my life. It has a massive advantage over the current implementation of MemberwiseClone as it does not create any garbage.
Let's say for example you have an array of 1000 objects, and you want to iterate through and test what effect calling SomeFunction() has on the object without corrupting the original. A fairly common occurrence in the world of scientific simulations.
If you use the existing implementation of MemberwiseClone, you're creating 1000 objects worth of garbage. If my suggested method existed, you could create 1 object and reuse that for all iterations. This obviously creates far less garbage and far less work for the GC. I can't imagine the implementation of the method would differ that much from the original, so I'm guessing it would have taken almost no time to add to the framework.
While it's perfectly possible to maintain a GetCopy() method for an object that copies field by field there are two problems with this. First and foremost, it has to be maintained. Whenever a new field is added, if you forget to add it to the GetCopy, your program is broken. Secondly, for large object it's much less efficient than copying a memory block for a clone.
I've had to resort to embedding structs within my objects to store all fields, then I don't need to remember to add them to the GetCopy method, and I can copy them all with a single assignment. The problem with this is that it makes the code really ugly.
So, is there a good reason this method was never implemented? Or is it just not as useful as I'm imagining.