0

ユーザーがアプリケーション内で登録できるように、C#フレームワークの一部としてパブリッククラスを公開しています。ユーザーにクラスを拡張してほしくないので、マークを付けましたsealed。現在、私が提供したメソッドよりも多くのメソッドがそのクラスに表示されていると報告しているユーザーがいます。調査の結果、これらのユーザーは、私の公開された封印されたクラスで定義されているかのように(インテリセンスで)表示する拡張メソッドを定義しているように見えました。

質問 公開された封印されたクラスで拡張メソッドを定義することをユーザーに禁止する方法はありますか?

4

1 に答える 1

8

いいえ、できません。正直なところ、なぜあなたがしたいのかわかりません。拡張メソッドを使用したいユーザーがいる場合は、そうさせてください。誰も彼らにそうすることを強制するつもりはありません、そしてそれは彼らの生活を楽にするかもしれません。少なくともあなたのタイプが封印されているので、誰かが予期せず利用可能なメソッドを報告した場合、それらは拡張メソッドでなければならないことを知っています。

で拡張メソッドを定義できるのは誰でも可能であり、クラスだけで拡張メソッドを禁止する方法があったとしても、objectそれは常に利用可能であることに注意してください。

于 2012-06-23T19:51:12.277 に答える