Ich versuche, den Mangel an Mehrfachvererbung Unterstützung in C# zu überwinden und Methode Extensions (fast erbt) ein paar Klassen erben zu können,:C# - Verwenden von Methodenerweiterungen für die Mehrfachvererbung?
public interface IA
{
// nothing
}
public static class A
{
public static void FunctionA(this IA a)
{
// do something
}
}
public interface IB
{
// nothing
}
public static class B
{
public static void FunctionB(this IB b)
{
// do something
}
}
public class Derived : IA, IB
{
// members
}
// main code
Derived myDerivedobj = new Derived();
myDerivedobj.FunctionA(); // Call Function A inherited from Class A
myDerivedobj.FunctionB(); // Call Function B inherited from Class B
Obwohl dieser Code funktioniert, und ich bin in der Lage, die Funktionen zu nutzen ausgesetzt von Klasse A und Klasse B in meiner abgeleiteten Klasse, ist dies der richtige Weg, um es zu erreichen?
Dank
Ich weiß nicht, was Sie mit dem ‚richtigen‘ bedeuten, aber es ist definitiv ein häufig verwendetes Verfahren. Auch: https://stackoverflow.com/q/2456154/302248 – Sach
Wenn Ihre Schnittstellen tatsächlich keine Mitglieder haben, dann können diese beiden Funktionen nur "Objekt" -Instanzen akzeptieren, und es gibt keine Notwendigkeit für Schnittstellen überhaupt. – Servy