object a = Hoge();
元の型 b = (元の型)a;
失敗する可能性があるなら
元の型 b = a as 元の型; としてnullかどうか調べる
元の型が分からない場合は元の型に戻す必要はないはず