Copy constructor versus Clone()
<p>In C#, what is the preferred way to add (deep) copy functionality to a class? Should one implement the copy constructor, or rather derive from <code>ICloneable</code> and implement the <code>Clone()</code> method?  </p>

<p><b>Remark</b>: I wrote "deep" within brackets because I thought it was irrelevant. Apparently others disagree, so I asked <a href="http://stackoverflow.com/questions/3350725/does-a-copy-constructor-operator-function-need-to-make-clear-which-copy-variant-i">whether a copy constructor/operator/function needs to make clear which copy variant it implements</a>.</p>
