为什么这个重写的方法被灰化了?

3

在我需要维护的代码中(ELP的"Lucky Man"肯定不适合这个配乐),我看到了这个灰色的内容(不是注释掉的--而是被编译器或者Resharper灰化处理的):

protected override void Dispose( bool disposing )
{
    base.Dispose( disposing );
}

一个橙色灯泡符号(Resharper?)的消息显示:“删除冗余方法覆盖”

一个天蓝色的圆形符号里面有一个“0”,上面写着:

“从类'System.ComponentModel.Component'重写方法” -以及: “从类'System.Windows.Forms.Control'重写方法”

我理解它的意思是,这个覆盖方法除了执行被覆盖方法的操作外,没有其他作用,因此我可以完全删除它。我理解得对吗?


1
正确。它没有做任何事情,因此可以删除。 - Serdalis
2个回答

9

由于您只是调用基本方法,因此没有必要将该代码放在那里,因此可以删除它。


这是有关Visual Studio的惊人之处。它会在你完成前将事物标记为错误,这对于一个新的开发者来说是非常沮丧的(至少在我的情况下是这样)。 - Paul
它不会将其标记为错误,只是警告您在那一时刻您有过时的代码。您可以忽略它,运行项目,它将正常运行。 - Kenneth

1

我知道这是一个老问题,但是我想在这里添加一个细节。如果你从派生类中再派生另一个类,你将无法从后者调用base.Dispose,除非保留“冗余”函数。


我不认为那是真的。 - Tim Abell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接