これはOOP質問の一種です。答えはC++、C#、ObjCのいずれの場合でもうまくいきます。 アプリケーションでは、私は次のクラス構造を持っています。データの複製なしでサブクラス/スーパークラスにキャスト/インスタンス化/変換する
class ToSend {
public int id;
public int prop1;
}
class Received : ToSend {
public int prop2;
public int prop3;
}
class Viewer : Received {
public static int viewerProp;
public String viewerMethod() {... Using viewerProp...}
}
クラスのコレクション受信したサービスから受け取りました。コレクションの各アイテムをリストに表示するには、viewerMethod(Viewer)を使用する必要があります。複数の選択とprop1の変更の後、変更のコレクション(ToSend)を送り返す必要があります。
質問1:どのようにviewerMethodを使用するためにReceived to Viewerのすべてのインスタンスをキャストまたは変換できますか? ファサードパターンを使用する必要がありますか?あまりにも多くのスペースを取るので、私はデータをコピーしたくないです。
質問2:アクセシブルプロパティを制限するために、ReceivedからToSendの選択されたインスタンスをキャストまたは変換するにはどうすればよいですか? (明示的キャスト後JSonエンコーダは、送信メッセージのReceivedのすべてのプロパティを含む)