Also: ICloneable works with all languages. Most other .NET languages don't have copy constructors (VB, Eiffel, COBOL, MF).
Reference instances aren't passed by value, so they aren't needed in C# the way they are in C++. --- Mickey Williams Author "Microsoft Visual C# .NET", MS Press ----- Original Message ----- From: "Graeme Foster" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, August 14, 2002 6:36 AM Subject: Re: [ADVANCED-DOTNET] Copy constructor vs. ICloneable > I don't know what you'd call a good reason, but here's one that's good > enough for me - it's easier to call IClonable.Clone() than it is to call a > constructor for an unknown type. > > Compare: > > object clone = ((IClonable) anyObj).Clone(); > > To: > > <pseudocode> > 1. Get type of anyObj > 2. Find copy constructor for that type > 3. Invoke copy constructor > </pseudocode> > > > It's also easier to tell if it's supported by an object. > > Cheers, > G. > -- > Graeme Foster ([EMAIL PROTECTED]) > Principal Software Engineer > Aston Broadcast Systems Ltd. (http://www.aston.tv) > Disclaimer: I really don't have a clue what I'm on about. > > -----Original Message----- > From: Moderated discussion of advanced .NET topics. > [mailto:[EMAIL PROTECTED]]On Behalf Of Jesse Liberty > Sent: 14 August 2002 12:02 > To: [EMAIL PROTECTED] > Subject: Copy constructor vs. ICloneable > > > Is there a good design reason to favor implementing ICloneable rather than > implementing a copy constructor? > > > > **************************************************************************** * > The contents of this email and any attachments are confidential. > It is intended for the named recipient(s) only. > If you have received this email in error please notify the system manager or the > sender immediately and do not disclose the contents to any one or make copies. > > ** eSafe scanned this email for viruses, vandals and malicious content ** > > **************************************************************************** * > > You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or > subscribe to other DevelopMentor lists at http://discuss.develop.com. > You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.