dポイントプレゼントキャンペーン実施中!

自作クラス 「XXXParam」と「XXXData」を作成しました。
「XXXParam」は「XXXData」を継承して作成しています。
  
  XXXData WData;
XXXParam WParam = (XXXParam)WData;

という処理を実行したところ
「型 XXXData' のオブジェクトを型 'XXXParam' にキャストできません。」
というエラーメッセージが出力されます。
キャストの方法、私が間違えている所、解決策など教えていただけると
幸いです。
よろしくお願いいたします。

A 回答 (2件)

もともとのキャスト対象のインスタンス(WData)は、XXXParam のインスタンスでしたか?


つまり、
XXXData WData = new XXXParam ();
されてますか?

単なる
XXXData WData = new XXXData ();
されたものをそういうキャストはできません。
キャスト方向が逆です。
    • good
    • 0

>「XXXParam」は「XXXData」を継承して作成しています。



つまりXXXDataにはXXXParamは含まれていません。
だからキャストできないのです。
XXXParam WParam = new XXXParam();
XXXData WData = (XXXParam)WParam;
なら可能です。
ちなみに
XXXParam WParam = WData as XXXParam;
とすれば例外は発生せず、キャストできない場合は
WParamにnullが入ります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!