ホームページ > バックエンド開発 > C++ > WPF usercontrolsでジェネリックにジェネリックをキャストできないのはなぜですか?

WPF usercontrolsでジェネリックにジェネリックをキャストできないのはなぜですか?

Mary-Kate Olsen
リリース: 2025-01-28 18:33:10
オリジナル
945 人が閲覧しました

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

wpf usercontrol遺伝的変換:派生ジェネリックからベースクラスのジェネリックへの変換の問題

WPFでは、複数のuserControlが同じ機能を共有する場合、基本クラスのusercontrolが定義され、派生したusercontrolのコードの隠されたコードでインシデントが処理されます。ただし、場合によっては、基本クラスのusercontrolでデータコンテキストを遺伝的タイプに変換しようとする場合、

例外が発生する可能性があります。

InvalidCastException異常な外観は、datAcontextのタイプが派生型(

または

など)であるためです。そして、それをベースタイプ(BaseViewModel<wire>)に変換しようとします。これは、をBaseViewModel<connector>に変換できないためです。 BaseViewModel Generic<派生类型>概念的な観点では、これはGeneric<基类型>

に変換することに似ています。これにより、羊を

に追加できますが、これによりList<wolf>の完全性が破壊され、矛盾が生じる可能性があります。 List<animal> List<animal>唯一の例外は、インターフェイスやコラボレーションやインバーターの使用などの概念を使用することですが、これはクラスではなく、インターフェイスにのみ適用できます。したがって、あなたのシーンでは、List<wolf>

に変換することはできません。

Generic<派生类型>

以上がWPF usercontrolsでジェネリックにジェネリックをキャストできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート