C#中的“new”关键字只是为了使警告消失,不是吗?

我偶然在方法签名中遇到了这个新的关键字 ,我发现这篇文章中给出的一些例子不准确(例如第二篇)

如果你不说“覆盖”,我认为“新”已经存在。 唯一的区别是,如果你不写“覆盖”(对于虚方法)或“新”,你会得到一条绿线(warrning?)。 你仍然可以选择不写“新”,它仍然可以工作。 我说得对,或者我错过了重要的事情吗?

是的,除了隐藏警告之外它什么都不做。

警告只是为了确保你知道你在做什么,因为隐藏很少是一个好主意。 但是,如果基类引入了一个新的虚方法,并且派生类碰巧有一个匹配但独立的方法,现在意外地覆盖了inheritance的方法,那么使override默认会导致版本控制问题。

我相信它基本上是你可以在你的代码中陈述意图。

因此,如果您想隐藏基类中的方法,您可以使用新指令告诉自己和其他人,您是故意这样做的。 即你没有在无知中添加一个与现有onne同名的全新方法。