Wie kann ich verhindern, dass eine Klasse in C # geerbt wird?

7

In Java könnte ich das mit dem Schlüsselwort "final" machen. Ich sehe in C # kein 'final'. Gibt es einen Ersatz?

    
user18931 30.09.2008, 19:57
quelle

5 Antworten

35

Sie suchen nach dem Schlüsselwort sealed . Es macht genau das, was das Schlüsselwort final in Java tut. Versuche, zu erben, führen zu einem Kompilierungsfehler.

    
Kilhoffer 30.09.2008, 19:57
quelle
6

Seien Sie sich auch bewusst, dass "Ich glaube nicht, dass jemand jemals davon erben wird" kein guter Grund ist, "versiegelt" zu verwenden. Wenn Sie nicht speziell sicherstellen müssen, dass eine bestimmte Implementierung verwendet wird, lassen Sie die Klasse nicht versiegelt.

    
Mark Bessey 30.09.2008 20:19
quelle
2

Wie bereits von Joel empfohlen, können Sie in C # sealed anstelle von final verwenden.

Ссылка

    
Nasir 30.09.2008 20:09
quelle
1

Der Modifikator sealed wird tun, was final in Java tut.

Auch wenn dies wahrscheinlich nicht das ist, was Sie in dieser Situation suchen, verhindert das Markieren einer Klasse als static auch, dass sie vererbt wird (sie wird hinter den Kulissen versiegelt).

    
Max Schmeling 30.09.2008 23:19
quelle
0

Das sealed Schlüsselwort würde funktionieren, aber Sie können immer noch mit Reflection IIRC von der Klasse ableiten.

    
dalle 30.09.2008 20:36
quelle

Tags und Links