gpt4 book ai didi

c# - 如何在 C# 中覆盖属性的 setter 方法?

转载 作者:IT王子 更新时间:2023-10-29 04:20:38 25 4
gpt4 key购买 nike

我有一个带有子类的类。父类(super class)有一个 Position 属性。当 Position 属性更改时,子类必须执行额外的操作,因此我试图重写 setter 方法并调用父类(super class)的 setter。

我想我已经了解了父类(super class) setter 调用部分,但我无法弄清楚这里的重写语法是如何工作的。

这是我最好的尝试: code

setter/getter 只是为了证明概念——假设我也想覆盖它?

getter 和 setter 给我这种形式的错误:

cannot override inherited member 'superClassName.Position.[gs]et' because it is not marked virtual, abstract, or override

为了更好地衡量,这里也有一个错误的屏幕截图: errors

我还尝试在 set 前面使用 override 关键字。移除多余的 setter/getter 没有任何效果。

正确的语法是什么?

最佳答案

覆盖很好。但是,正如错误消息所述,您需要将基类中的属性标记为虚拟才能覆盖它:

public virtual Vector2 Position

与 Java 不同,类成员在 C# 中默认不是虚拟的。如果您不能更改基类,那您就不走运了。

关于c# - 如何在 C# 中覆盖属性的 setter 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6385205/

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