-1

私はそのようなものを持っています。

internal virtual Draw() { ... }

コンパイルされたアセンブリで。このクラスから派生したクラスがあります。明らかに、その特定のアセンブリの外にいるため、このメソッドをオーバーライドしたり、呼び出したりすることはできません。

自分のアセンブリからは「見えない」ので、このメソッドを非表示にすることはできますか?

この動作を変更して、このメソッドが呼び出されないようにしたり、ルートを変更したりする方法はありませんか?

4

2 に答える 2

0

まず、あなたのメソッドがprotected internalではなく であることを意味していると思いますがpublic internal、これは有効なメソッド シグネチャではありません。

メソッドの非表示について、コンパイルされたライブラリのソース コードにアクセスできる場合は、protected派生型のみがメソッドをオーバーライドできるように、アセンブリ内のみとしてリファクタリングできます。

しかし、それを「隠す」ことは意味がありません。アセンブリ自体の外部の誰も(とにかくサードパーティであると言います)、それを呼び出したりオーバーライドしたりできないため、それを行う意味がありません。

于 2014-04-27T18:44:10.473 に答える