Szenario:
Ich habe 3 Klassen (A, B, C) in meinem Windows Runtime Component-Projekt.Vererbung in Windows Runtime Component unmöglich?
class A{}
public sealed class B : A {}
public sealed class C : A {}
Auf den obigen Code kompiliert, erhalte ich die folgenden Fehler:
"Uneinheitliche Zugänglichkeit. Basisklasse 'A' ist weniger zugänglich als Klasse 'C'"
Wenn ich ein öffentlich machen Klasse, gibt es einen Kompilierungsfehler: „. Entsiegelt Arten exportieren wird nicht unterstützt Bitte Typ markieren‚MyProject.A‘wie versiegelt“
Aber jetzt, wenn ich A als versiegelt mache, können B und C nicht davon erben.
Angesichts der Tatsache, dass nur WinRT-Typen für die Vererbung zugelassen sind, ist es irgendwie möglich, benutzerdefinierte/benutzerdefinierte Klassen für die Vererbung zu verwenden? Wenn nicht, gibt es einen Workaround, um dasselbe zu erreichen?
Die Fähigkeit, Javascript oder native C haben ++ Code direkt ausführen, Sprachen, die keine Unterstützung für die Vererbung oder tun es eine dramatisch anders Weg, kommt natürlich mit ein paar Kompromissen. Entweder muss A eine Schnittstelle sein oder du musst es einkapseln. Wenn Client-Code nur C# ist, verwenden Sie stattdessen eine normale Klassenbibliothek. –
@HansPassant wäre das keine perfekte Antwort auf die Frage? – Domysee
Jeder mag glückliche Antworten, ich habe kein Interesse, unglückliche zu unterstützen. –