vb.net: Mehrfachvererbung in einer Schnittstelle

8

Ich stehe vor einem Problem in Bezug auf Mehrfachvererbung in VB.net:

Soweit ich weiß, unterstützt VB.net die Mehrfachvererbung im Allgemeinen nicht, aber Sie können eine Art Mehrfachvererbung erreichen, indem Sie mit Schnittstellen arbeiten (mit "Implementiert" anstelle von "Vererbt"):

%Vor%

Das funktioniert gut für Klassen, aber ich würde gerne eine Schnittstelle haben, die einige Basisschnittstellen erbt. So ähnlich:

%Vor%

Aber das Schlüsselwort "Implements" ist für Schnittstellen nicht erlaubt (was natürlich Sinn macht). Ich habe versucht, eine Art abstrakter Klasse zu verwenden, die ich aus Java kenne:

%Vor%

Aber jetzt muss ich die definierten Methoden von BaseInterface1 und BaseInterface2 innerhalb der InterfaceName-Klasse implementieren. Da InterfaceName aber auch eine Schnittstelle sein sollte, möchte ich diese Methoden nicht innerhalb dieser Klasse implementieren müssen.

In C # können Sie das ganz einfach machen:

%Vor%

Weißt du, ob ich in VB.net etwas Ähnliches machen kann?

    
Erwin 15.04.2011, 20:49
quelle

4 Antworten

21

Ähnlich wie Java "erweitern" in VB.NET-Schnittstellen andere Schnittstellen. Das bedeutet, dass sie ihre Funktionalität "erben". Sie implementieren es nicht.

%Vor%     
pickypg 15.04.2011, 20:58
quelle
8

Versuchen Sie

%Vor%     
Ron Harlev 15.04.2011 20:52
quelle
0

Eine Problemumgehung besteht darin, dass die abstrakte Klasse (mustinherit) den Job zur Definition jedes Elements in der Schnittstelle weitergibt, das nicht mit motoverride implementiert werden soll. Versuchen Sie, wenn möglich, jedes in einem allgemeinen Sinne vorzudefinieren und es überschreibbar zu machen.

    
VoteCoffee 17.07.2011 05:54
quelle
0

Ich wäre vorsichtig beim Erben von Schnittstellen.

Während es funktioniert, habe ich festgestellt, dass beim Verknüpfen einer BindingList (Of InterfaceName) mit einer BindingSource und der BindingSource mit einer DataGridView die Eigenschaften in Interface1 und Interface2 für den Visual Studio DataGridView-Designer zum Zuordnen als Spalten nicht sichtbar sind das DataGridView.

    
PolicyWatcher 14.04.2013 19:09
quelle