Wie verhindere ich eine Methode aus in einer abgeleiteten Klasse überschrieben werden?Verhindern eines Verfahrens von in C# überschrieben wird
In Java konnte ich dies tun, indem Sie den Modifikator final
auf die Methode, die ich verhindern möchte, zu übersteuern.
Wie erreiche ich das gleiche in C#?
Ich bin mir bewusst, sealed
verwenden, aber anscheinend kann ich es nur mit dem override
Schlüsselwort verwenden?
class A
{
public void methodA()
{
// Code.
}
public virtual void methodB()
{
// Code.
}
}
class B : A
{
sealed override public void methodB()
{
// Code.
}
}
So im obigen Beispiel kann ich die methodB()
verhindern, durch irgendwelche Klassen überschrieben wird von der Klasse abgeleitet B
, aber wie kann ich verhindern, Klasse B
von Überschreiben der methodB()
in erster Linie?
Update: Ich verpasste das virtual
Schlüsselwort in der methodB()
Erklärung auf Klasse A, als ich diese Frage gepostet. Korrigiert es.
Ist dies ein neues Feature in C# 4, um eine Methode zu versiegeln? –
Wenn Sie die Methode nicht schon überschreiben, dann dekorieren Sie sie nicht mit 'virtual', dann wird alles andere nicht berücksichtigt, um die Methode an Ihren Typ zu binden. –
Ich glaube, dass Ihre Methoden in Klasse A "virtuell" sein sollten, wenn Sie sie überschreiben wollen. – CAbbott