mjsr
mjsr

Reputation: 7590

How can I call MemberwiseClone()?

I'm confused about how to use the MemberwiseClone() method. I looked the example in MSDN and they use it trough the this keyword.

Why I can not call it directly as other objects' methods like GetType() or ToString()? Another related method that does not appear is ShallowCopy().

If they are part of the Object class why can't I see them?

Upvotes: 11

Views: 14833

Answers (2)

Esteban
Esteban

Reputation: 3127

Here is an example, this is what I did and no problems so far.

public class ModelBase
{
    public T ShallowCopy<T>() where T : ModelBase
    {
        return (T)(MemberwiseClone());
    }
}

And call it like:

var cloned = User.ShallowCopy<User>();

Upvotes: 6

SLaks
SLaks

Reputation: 887807

The MemberwiseClone() function is protected, so you can only access it through a qualifier of your own type.

Upvotes: 15

Related Questions