不要使用公共的虚方法,而是使用公共的密封方法来调用受保护的虚方法。代码示例如下:
public class Test {
public void DoStuff(){
// Do stuff here...
ProtectedDoStuff();
// Do more stuff...
}
protected virtual void ProtectedDoStuff(){
// Do stuff...
}
}
替换为:
public class Test {
public virtual void DoStuff(){
// Do stuff here...
// Do a lot of stuff...
// Do more stuff...
}
}
public class Test2 : Test {
public override void DoStuff(){
// Do same stuff as base
// Do different stuff
// Do more stuff just like base
}
}
这样做可以避免在每次需要时重新实现公共方法的所有功能。 我知道这个问题已经在stackoverflow上被问过了,但我找不到这个问题。