在基类中隐藏了一个可重写的方法

the*_*tus 3 vb.net

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

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

我想知道将所有内容都设置为覆盖是否安全。这是默认行为吗?将会进行很多测试,我希望将问题最小化。

Kev*_*lia 5

将其更改为替代项是不一样的。您可以添加关键字Shadows来消除警告,但是如果您长时间在消息中运行该关键字,则将其更改为覆盖可能会导致工作方式与以前有所不同。

覆盖和阴影之间的唯一区别是阴影不具有覆盖所具有的多态效果,因此,即使您在基类对象上调用方法,即使它恰好持有子类实例,该基类方法也始终是叫。

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