我如何调用MemberwiseClone()?

时间:2011-05-19 23:38:29

标签: c# object clone

我对如何使用MemberwiseClone()方法感到困惑。我查看了MSDN中的示例,他们通过this关键字使用它。

为什么我不能直接将其称为GetType()ToString()等其他对象的方法?另一种未出现的相关方法是ShallowCopy()

如果他们是Object类的一部分,为什么我不能看到它们?

2 个答案:

答案 0 :(得分:10)

MemberwiseClone()函数为protected,因此您只能通过自己类型的限定符访问它。

答案 1 :(得分:5)

这是一个例子,这是我做的,到目前为止没有问题。

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

并称之为:

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