Ist es möglich, überschriebene Methode als endgültig zu markieren?

In C# ist es möglich, dass mark eine überschriebene virtuelle Methode als final, damit der Entwickler nicht außer Kraft setzen kann? Wie sollte ich das tun?

Sich an einem Beispiel leichter zu verstehen:

class A
{
   abstract void DoAction();
}
class B : A
{
   override void DoAction()
   {
       //Implements action in a way that it doesn't make
       //sense for children to override, e.g. by setting private state
       //later operations depend on  
   }
}
class C: B
{
   //This would be a bug
   override void DoAction() { }
}

Gibt es eine Möglichkeit zu ändern, B) um zu verhindern, dass andere Kinder C überschreiben DoAction, entweder zur Compilezeit oder Laufzeit?

InformationsquelleAutor der Frage dbkk | 2009-04-28

Schreibe einen Kommentar