【发布时间】:2011-06-17 11:40:05
【问题描述】:
我有一个带有子类的类。超类有一个Position 属性。当Position 属性发生变化时,子类必须执行额外的操作,所以我试图重写setter 方法并调用超类的setter。
我想我的超类 setter 调用部分已关闭,但我无法弄清楚覆盖语法在这里是如何工作的。
这是我最好的尝试:
getter 只是为了证明概念——假设我也想覆盖它?
getter 和 setter 给我这种形式的错误:
无法覆盖继承的成员“superClassName.Position.[gs]et”,因为它没有标记为虚拟、抽象或覆盖
这里也是错误的截屏:
我还尝试在 set 前面使用 override 关键字。去掉多余的吸气剂没有效果。
正确的语法是什么?
【问题讨论】:
-
另请注意,您正在覆盖 getter,如果代码的目的是使用基类 Position 并在设置值时调用 SnapBodyToPos(),您还必须更改“get”以“return base.Position”而不是“return pos”
标签: c# get properties overriding set