métodos abstratos internos. Por que alguém os teria?
Eu estava fazendo uma revisão de código hoje e me deparei com um código antigo escrito por algum desenvolvedor. É algo como isto
public abstract class BaseControl
{
internal abstract void DoSomething();
}
Se você tiver uma classe derivada na mesma montagem, ela funcionaria
public class DerivedControl : BaseControl
{
internal override void DoSomething()
{
}
}
Mas derivar a classe base em um assembly diferente daria erro de tempo de compilação
DerivedControl does not implement inherited abstract member 'BaseControl.DoSomething()
Isso me fez pensar. Por que alguém declararia um método como abstrato interno?