クラスがC#で継承されないようにするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/154698

  •  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を使用してクラスから派生できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top