• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:親子関係を持つ自作クラスのDownCast)

親子関係を持つ自作クラスのDownCast

このQ&Aのポイント
  • .NET2.0ベースのVBで親子関係を持つ自作クラスのDownCastについて解説します。
  • ビルド時にCType部分でエラーが発生し、「変換演算子によって、ある型からその派生型に変換することはできません」とメッセージが表示されます。
  • このアプローチが間違っているのか、なぜダウンキャストが不可能なのか、詳しく説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

エラーとなる理由はエラーメッセージでMSDNを見れば書いてあります。 継承クラス間の定義は宣言した時点で実装済みです。 しかし、 そもそも、ダウンキャストの概念自体が危険であり、それ自体を避けるべきです。 継承元が継承先に依存するので、クラス設計としても問題ありでしょう。 また、実質、VB.NET の継承ではダウンキャストは出来ないと思います。 継承は関係なくなり、特定のクラスから特定のクラスへキャストすると いう意味になり、メンバ間の引継ぎが実装できないのでしょう。 ※継承している時点でアップキャストはできます。 どうしても実装したいというのであれば、ダウンキャスト用の独自関数を 作って下さい。 また、その他の指摘事項として、 Partial を使っているが質問の趣旨と関係あるような意味は無いはずです。

sumire_kanou
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A