Cabaran penukaran genetik dalam jenis jenis generik dalam aplikasi WPF
Dalam aplikasi WPF, penukaran antara jenis generik kadang -kadang rumit. Adegan khas melibatkan penukaran jenis
ke dalam jenis. Generic<派生类型>
Generic<基类型>
Dengan mengandaikan anda mempunyai usercontrol WPF asas untuk pelbagai usercontrol derivatif. Dalam setiap kod usercontrol yang tersembunyi, program pemprosesan acara memanggil kaedah dalam usercontrol. Walau bagaimanapun, apabila anda cuba
dalam penggunaan DataContext
apabila anda cuba menukar Generic<基类型>
berdasarkan usercontrol. InvalidCastException
atau DataContext
, dan usercontrol menjangkakan ia adalah contoh BaseViewModel<线>
. BaseViewModel<连接器>
Generic<基类型>
pemahaman konsep teras
Malangnya, tidak boleh ditukar kepada
secara langsung. Ini adalah had asas untuk sistem generik. Untuk menjelaskan ini, katakan anda boleh melaksanakan penukaran sedemikian.
Generic<派生类型>
Katakan anda mempunyai Generic<基类型>
, anda menukarnya ke
ke . Walau bagaimanapun, ini akan membawa kepada logik yang tidak konsisten, kerana List<狼>
kini akan termasuk List<动物>
. List<动物>
羊
alternatif List<狼>
羊
Melaksanakan antara muka awam:
Jika jenis derivatif anda melaksanakan antara muka awam (contohnya,), anda boleh menukar
ke antara muka dan mengakses fungsi awam dengan cara ini.IBaseViewModel
DataContext
Atas ialah kandungan terperinci Bagaimana untuk mengatasi cabaran pemutus dengan generik dalam aplikasi WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!