私は基本的なテキストRPGゲームであるC#プログラムを書いています。ゲームを保存するときに、キャラクターからデータを取得してxmlファイルに書き込む保存関数にそのキャラクターを渡したいと思います。私は1つの基本クラス文字と3つの派生クラス:騎士,ローグとウィザードを持っています。彼らはそれぞれxmlファイルに書きたい特殊なintを持っています。パラメータとして基本ケースを持つ関数の派生クラスを渡す
private void Save(Character c, string file) {
//Sample part of writing the data
XmlNode nodeName = playerData.CreateElement("name");
nodeName.AppendChild(playerData.CreateTextNode(c.name));
nodeDetails.AppendChild(nodeName);
}
私は、この関数に騎士、ローグ、またはウィザードに渡すと、基本クラスに含まれていない派生クラス内の任意の変数を取得することができるようにしたいです。これを行う方法はありますか?
を助けている場合を参照してください。すべてのまたは一部のサブタイプが、基本タイプにきれいに引き上げられないさまざまなプロパティを持つことになり、https://en.wikipedia.org/wiki/Visitor_patternでダブルディスパッチを検討することを検討してください。 – kai