つのクラスがあったとします。クラスを用意するとします。型変換できるようにしたいとします。お互いの存在を直接知らないものとします。派生クラスの存在を直接知らないものとします。共通で実装するインターフェイスを用意します。Source{get;}}このインターフェイスを実装したコードは次のようになります。型変換することが可能です。変換ができるようになるはずです。this._source;}}}残念ながら、このコードはコンパイルが通りません。インターフェイスからの変換演算子の定義が禁止されているからです。今回の目的は恐らく正攻法では実現できません。いうことで、これから非実用的な実現方法を紹介します。先にも記述しました通り、変換演算子で変換元または変換先をインターフェイスにすることはできません。そこでジェネリックの型パラメータを利用します。ジェネリックの型パラメータは変換元や変換先に指定することができます。型引数としてインターフェイスを指定することで、間接的に変換元または変換先をインターフェイスにすることができます。指定していますので、変換演算子は実質次のような形と同等になります。変換を実現してみます。継承するようにします。定義以外のコードからは直接使用しないようにします。ついても同じようにしておきます。変換演算子になっています。いう二段階の流れになります。変換はダウンキャストとなるため明示的な変換が必要になります。変換は暗黙的にはできません。次のように明示的な変換となります。(A1)b;以上で当初の目的は一応達成できました。仕組みが複雑なので実用度は低いですね。-ブログ内検索カウンターアクセスカウンターおすすめプロフィールAuthor:よこけん性別は男です。生年月日は1984年2月頃です。社会人は2004年4月頃からやってます。C#は2004年10月頃からやってます。このブログは2006年7月頃からやってます。アプリケーションリンクopus-i商用可・加工可で、綺麗な素材を提供していらっしゃいます。紹介していらっしゃいます。中心に扱っていらっしゃいます。コマンドレットをまとめたスナップインです。クラスライブラリを作ってみました。最近の記事ブログ移転しました。返事を返せない場合があります。