クラスがC#で継承されないようにするにはどうすればよいですか?
-
03-07-2019 - |
質問
Javaでは、「final」キーワードを使用してこれを行うことができます。 C#に「final」が表示されません。代替品はありますか?
解決
sealed
キーワードを探しています。 Javaの final
キーワードが行うことを正確に実行します。継承しようとすると、コンパイルエラーが発生します。
他のヒント
また、「これから継承する必要がある人はいないと思います」 「密封」を使用する正当な理由ではありません。特定の実装を確実に使用する必要がある場合を除き、クラスを封印しないでください。
Joelが既にお勧めしたように、C#では final
の代わりに sealed
を使用できます。
http://en.csharp-online.net/CSharp_FAQ:_Does_CSharp_support_final_classes
sealed
修飾子は、Javaで final
が行うことを行います。
また、これはおそらくこの状況で探しているものではありませんが、クラスを static
としてマークすると、継承されなくなります(裏で封印されます)。
sealed
キーワードは機能しますが、それでもリフレクションIIRCを使用してクラスから派生できます。
所属していません StackOverflow