vb.net: mehrfache Vererbung in einer Schnittstelle
Ich bin vor ein problem in Bezug auf Mehrfachvererbung in VB.net:
Soweit ich weiß VB.net Mehrfachvererbung nicht unterstützt, aber Sie können erreichen, eine Art Mehrfachvererbung durch die Arbeit mit Schnittstellen (mit "Implements" statt "Erbt"):
Public Class ClassName
Implements BaseInterface1, BaseInterface2
End Class
Dass funktioniert gut für Klassen, aber ich möchte ein interface erbt, einige Basis-Schnittstellen. Sowas:
Public Interface InterfaceName
Implements BaseInterface1, BaseInterface2
End Interface
Aber dem Schlüsselwort "Implements" ist nicht erlaubt, Schnittstellen (was Sinn macht, natürlich). Ich habe versucht, eine Art abstrakte Klasse, die kenne ich von Java:
Public MustInherit Class InterfaceName
Implements BaseInterface1, BaseInterface2
End Class
Aber jetzt brauche ich für die Umsetzung der festgelegten Methoden aus BaseInterface1 und BaseInterface2 innerhalb der InterfaceName-Klasse. Aber als InterfaceName sollte eine Schnittstelle zu, ich will nicht zu haben, um die Implementierung dieser Methoden innerhalb dieser Klasse.
In C# können Sie das ganz einfach:
public interface InterfaceName: BaseInterface1, BaseInterface2 {}
Wissen Sie, wenn ich etwas tun kann, ähnlich wie in VB.net?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ähnlich wie Java, in VB.NET Schnittstellen "erweitern" andere Schnittstellen. Das bedeutet, dass Sie "Erben" Ihre Funktionalität. Sie nicht, es umzusetzen.
Versuchen
Ist ein workaround, um die abstrakten Klassen (mustinherit) - pass auf den job zu definieren, die jedes Element in der Schnittstelle nicht implementieren wollen, die mit mustoverride. Versuchen Sie vordefinieren und jeden in einen Allgemeinen Sinn haben, wenn möglich und machen es überschreibbare.
Ich würde vorsichtig sein, wenn die Erben Schnittstellen.
Während es funktioniert, ich habe festgestellt, dass, wenn Sie bind eine BindingList(Of InterfaceName) zu einem BindingSource und die BindingSource an ein DataGridView, dann Eigenschaften in Interface1 und Interface2 sind nicht sichtbar für das Visual Studio DataGridView-designer für die Zuordnung der Spalten des DataGridView.