4

我目前正在进行一个新项目,并且有很多这样的警告:

函数“yyy”隐藏了基类“zzz”中的可覆盖方法。要覆盖基本方法,必须将此方法声明为“Overrides”。

我想知道将所有内容都作为覆盖是否安全。这是默认行为吗?将进行大量测试,我想尽量减少问题。

4

1 回答 1

6

将其更改为覆盖是不一样的。您可以添加关键字Shadows来消除警告,但如果您已经使用消息运行了很长时间,将它们更改为覆盖可能会导致事情的工作方式与以前不同。

覆盖和阴影的唯一区别是阴影没有覆盖的多态效果,所以如果你在基类对象上调用一个方法,即使它恰好持有一个子类实例,基类方法总是叫。

但是同样,如果您收到该警告,则意味着它正在Shadows为您添加关键字,但它会引发警告以确保这是您想要的效果,您可以通过自己添加关键字来消除它。如果您怀疑这Overrides是您想要的行为,您也可以添加它,只是意识到它们并不等效。

于 2013-08-12T17:48:58.167 回答