如何避免C#中的多个方法覆盖?

时间:2012-10-14 08:46:58

标签: c#

我有一个DLL,我们买了,我无法访问它的来源。但是,对于我现在面临的问题,我被告知我必须继承DLL中的一个类,并覆盖其中一个方法。

我尝试了它并且正如预期的那样效果很好。我现在的问题是我有很多类我需要做同样的事情,并且不想重复相同的代码这么多次。尽管所有这些类都继承自同一个DLL类,但在所有这些类中编写相同的代码对我来说并不好。 这是一个类的代码:

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

由于

1 个答案:

答案 0 :(得分: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吗?