Mehrere Basis-Klassen für eine abgeleitete Klasse, die Vererbung in C#
Wenn ich eine Klasse mit zwei Basisklassen :
public partial MyClass : Base1, Base2 {
}
Aufruf der Konstruktor von Base1 würde ich dies tun:
public MyClass() : base(myParamForBase1);
Aber ich brauche Sie zum aufrufen der zweiten Basis-Klasse, um den base-init Wert wie diese:
base.OnInit(e);
Kann ich nicht tun, die oben natürlich, weil C# denkt, ich beziehe mich auf Base1 nicht Base2, wie kann ich dies beheben? In anderen Worten, wie kann ich verweisen auf Base2?
- Sie können nicht mehrere Basisklassen. Können Sie eine einzige Basisklasse und unendlich-Schnittstellen
- Die Notwendigkeit von Mehrfachvererbung immer Ergebnisse
from
eine schlecht entworfene Klassenstruktur. Post ein Beispiel für das, was Sie brauchen. Ich bin sicher, es ist eine Art zu strukturieren, so dass Sie nicht brauchen, Mehrfachvererbung (die nicht existiert sowieso) - sicher, ich hab das konvertieren jetzt ob Sie es glauben oder nicht, ein MVC-Projekt zu einem standard .NET-Projekt für SharePoint. Ich kann nach meiner situation und es wäre toll, wenn könnten Sie mir helfen
- WAS. Oh, ich sehe, dass Sie nicht wusste, hat C# eine mehrfache Vererbung. Sie Klang wie Sie waren in der Lage, alle oben genannten kompilieren. Ich dachte, C# verändert viel in einer neueren version
- lol ja, ich entschuldige mich für meine Unwissenheit
Du musst angemeldet sein, um einen Kommentar abzugeben.
C# unterstützt keine mehrfache Vererbung. Sie können nur mehrere interfaces implementieren, und Erben, (erweitern) einer einzelnen Basisklasse.
Grandchild
erbt vonChild
, die inhertis vonMother
.Was Sie tun können ist, stellen Sie eine Klasse, die erbt von der ersten base
sowas
Nicht, dass ich wie diese, aber es kann helfen, in einigen Fällen