Heim > Backend-Entwicklung > C++ > Warum kann ich in WPF UserControls nicht generisches an generische Werbung werfen?

Warum kann ich in WPF UserControls nicht generisches an generische Werbung werfen?

Mary-Kate Olsen
Freigeben: 2025-01-28 18:33:10
Original
894 Leute haben es durchsucht

Why Can't I Cast Generic to Generic in WPF UserControls?

WPF UserControl Genetische Konvertierung: Das Konvertierungsproblem von abgeleiteten Generika in die Basisklassengenerika

In WPF wird in der Basisklasse in der Regel mehrere UserControl die gleichen Merkmale aufweist und die Vorfälle im Code versteckt des abgeleiteten Usercontrols behandelt. In einigen Fällen kann jedoch bei dem Versuch, Datacontext in den genetischen Typ in der Basisklasse Usercontrol umzuwandeln,

Ausnahme auftreten.

InvalidCastException Das abnormale Erscheinungsbild liegt daran, dass der Typ des DataContext abgeleitet ist (z. B.

oder

), und Sie versuchen, ihn in den Basistyp zu konvertieren (BaseViewModel<wire>). Dies liegt daran, dass nicht in BaseViewModel<connector> konvertiert werden kann. BaseViewModel Generic<派生类型> In konzeptioneller Sicht ähnelt dies der Transformation Generic<基类型> in

. Auf diese Weise können Sie

ein Schaf hinzufügen, aber dies wird die Integrität von List<wolf> zerstören, was zu Inkonsistenz führen kann. List<animal> List<animal> Die einzige Ausnahme besteht darin, die Konzepte wie Schnittstellen und Collaborative und Wechselrichter zu verwenden. Dies gilt jedoch nur für die Schnittstelle, nicht für Klassen. Daher können Sie in Ihrer Szene List<wolf> in

nicht konvertieren.

Generic<派生类型>

Das obige ist der detaillierte Inhalt vonWarum kann ich in WPF UserControls nicht generisches an generische Werbung werfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage