如何避免C#中的多方法重写?

如何避免C#中的多方法重写?,c#,C#,我有一个DLL,我们买的,我无法访问它的源代码。然而,对于我现在面临的问题,我被告知我必须从DLL中的类继承,并重写它的一个方法 我试过了,效果很好,正如预期的那样。我现在的问题是,我有很多类需要做同样的事情,我不想重复同样的代码太多次。尽管所有这些类都继承自同一个DLL类,但在我看来,在所有这些类中编写相同的代码并不好。 这是一个类的代码: public class MyClass : DllClass { protected override void MethodFromDll()

我有一个DLL,我们买的,我无法访问它的源代码。然而,对于我现在面临的问题,我被告知我必须从DLL中的类继承,并重写它的一个方法

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

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

谢谢

为什么不创建一个从
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

谢谢Jon,首先,对于您的问题,如果我需要多个派生类,答案是肯定的。我必须这样做。这就是我们处理这个DLL的方式。至于你的解决方案,看起来很清楚。但是,我担心该解决方案会失去功能。例如,现在我有大约5个类需要从那个抽象类继承。假设在未来,其中两个(Class1和Class2)将需要从不同的新抽象类继承。但不仅如此,除了Class1和Class2之外,我还需要Class20和Class21从同一个新的抽象类继承。建议?