Rumah > pembangunan bahagian belakang > C++ > Mengapa saya tidak boleh membuang generik ke generik dalam usercontrol WPF?

Mengapa saya tidak boleh membuang generik ke generik dalam usercontrol WPF?

Mary-Kate Olsen
Lepaskan: 2025-01-28 18:33:10
asal
943 orang telah melayarinya

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

WPF UserControl Penukaran Genetik: Masalah penukaran dari generik yang diperolehi ke asas kelas generik

Dalam WPF, apabila pelbagai UserControl berkongsi ciri -ciri yang sama, UserControl kelas asas biasanya ditakrifkan dan insiden dikendalikan dalam kod yang menyembunyikan usercontrol yang diperolehi. Walau bagaimanapun, dalam beberapa kes, apabila cuba menukar DataContext ke dalam jenis jenis genetik dalam UserControl kelas asas,

pengecualian boleh ditemui.

InvalidCastException Penampilan yang tidak normal adalah kerana jenis DataContext adalah jenis yang diperoleh (contohnya,

atau

), dan anda cuba menukarnya ke jenis asas (). Ini kerana tidak boleh ditukar kepada BaseViewModel<wire>. BaseViewModel<connector> BaseViewModel Dalam pandangan konseptual, ini sama dengan transformasi Generic<派生类型> ke Generic<基类型>. Ini membolehkan anda menambah domba ke

, tetapi ini akan memusnahkan integriti

, yang boleh menyebabkan ketidakkonsistenan. List<wolf> List<animal> Satu -satunya pengecualian adalah menggunakan konsep seperti antara muka dan menggunakan kolaboratif dan penyongsang, tetapi ini hanya terpakai kepada antara muka, bukan untuk kelas. Oleh itu, dalam adegan anda, anda tidak boleh menukar List<animal> ke List<wolf>.

Atas ialah kandungan terperinci Mengapa saya tidak boleh membuang generik ke generik dalam usercontrol WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan