1

購入した DLL がありますが、そのソースにアクセスできません。ただし、現在直面している問題については、DLL 内のクラスから継承し、そのメソッドの 1 つをオーバーライドする必要があると言われました。

試してみましたが、期待どおりにうまく機能します。私の問題は、同じことをする必要があるクラスがかなりあり、同じコードを何度も繰り返したくないということです。これらのクラスはすべて同じ DLL クラスから継承されていますが、それらすべてに同じコードを記述するのは適切とは言えません。これは、1 つのクラスのコードです。

public class MyClass : DllClass
{
    protected override void MethodFromDll()
    {
       //here I inserted my code and it works ok
    }
}

ありがとう

4

1 に答える 1

3

そこから派生する抽象クラスを作成しDllClassてメソッドをオーバーライドし、そこから他のクラスを派生させてみませんか?

public abstract class MyClassBase : DllClass
{
    protected override void MethodFromDll()
    {
       //here I inserted my code and it works ok
    }
}

...

public class MyClass : MyClassBase
{
    // Whatever else you need
}

そもそもここで継承が必要だと仮定しています-複数の派生クラスが絶対に必要ですか、それともMyClass代わりに構成によって使用する多くのクラスが必要ですか?

于 2012-10-14T08:49:03.017 に答える