gpt4 book ai didi

c# - 无法访问 protected 成员 'object.MemberwiseClone()'

转载 作者:IT王子 更新时间:2023-10-29 04:36:16 26 4
gpt4 key购买 nike

我试图在我的自定义类上使用 .MemberwiseClone(),但它抛出了这个错误:

Cannot access protected member 'object.MemberwiseClone()' via a qualifier of type 'BLBGameBase_V2.Enemy'; the qualifier must be of type 'BLBGameBase_V2.GameBase' (or derived from it)

这是什么意思?或者更好的是,我如何克隆一个 Enemy 类?

最佳答案

在任何类 X 中,您只能在 X 的实例上调用 MemberwiseClone(或任何其他 protected 方法)。 (或派生自 X 的类)

由于您尝试克隆的 Enemy 类没有继承您尝试将其克隆到其中的 GameBase 类,因此您得到了这个错误。

要解决此问题,请向 Enemy 添加公共(public) Clone 方法,如下所示:

class Enemy : ICloneable {
//...
public Enemy Clone() { return (Enemy)this.MemberwiseClone(); }
object ICloneable.Clone() { return Clone(); }
}

关于c# - 无法访问 protected 成员 'object.MemberwiseClone()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com