我对如何使用MemberwiseClone()
方法感到困惑。我查看了MSDN中的示例,他们通过this
关键字使用它。
为什么我不能直接将其称为GetType()
或ToString()
等其他对象的方法?另一种未出现的相关方法是ShallowCopy()
。
如果他们是Object类的一部分,为什么我不能看到它们?
答案 0 :(得分:10)
MemberwiseClone()
函数为protected
,因此您只能通过自己类型的限定符访问它。
答案 1 :(得分:5)
这是一个例子,这是我做的,到目前为止没有问题。
public class ModelBase
{
public T ShallowCopy<T>() where T : ModelBase
{
return (T)(MemberwiseClone());
}
}
并称之为:
var cloned = User.ShallowCopy<User>();