WPFアプリケーションのジェネリックタイプのタイプにおける遺伝的変換の課題
WPFアプリケーションでは、一般的なタイプ間の変換が難しい場合があります。特別なシーンでは、
タイプを型に変換することが含まれます。 Generic<派生类型>
Generic<基类型>
複数の微分UserControlのベースWPF USERCONTROLがあると仮定します。派生した各usercontrolコードを非表示にすると、イベント処理プログラムはusercontrolのメソッドを呼び出します。ただし、UserControlに基づいて
DataContext
を使用しようとGeneric<基类型>
を使用しようとした場合。 InvalidCastException
やDataContext
などの派生タイプであり、usercontrolはそれがBaseViewModel<线>
のインスタンスであることを期待していることです。 BaseViewModel<连接器>
Generic<基类型>
コアコンセプトの理解
残念ながら、は
に直接変換することはできません。これは、一般的なシステムの基本的な制限です。これを説明するには、このような変換を実行できるとします。
Generic<派生类型>
Generic<基类型>
があると仮定し、
をに追加してみることができます。ただし、これはロジックに一貫性のないものになります。これは、List<狼>
がa List<动物>
に含まれるためです。 List<动物>
羊
代替List<狼>
羊
パブリックインターフェイスの実装:デリバティブタイプがパブリックインターフェイス(など)を実装する場合、
をインターフェイスに変換し、この方法でパブリック機能にアクセスできます。基本クラスでジェネリックメソッドを使用します。
以上がWPFアプリケーションでジェネリックを使用してキャストの課題を克服する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。