私は自分のPC XNAゲームをXboxに移植しようとしていますが、ハイスコア用の既存のPCファイル管理と一緒にxna easystorageを実装しようとしました。基本的に結合しようとしていますhttp://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspxとhttp://easystorage.codeplex.com/XNA XBOXハイスコアポート
LoadHighScores()に関するエラーが「return(data);」というエラーとして実行されています。 - 割り当てられていないローカル変数 'data'の使用。
これは、asystorage/xbox!の非同期設計によるものと推測します。しかし、解決する方法がわからない - 以下のコードサンプルは次のとおりです。
ORIGINAL PC用CODE:(PC上で動作します)
のpublic static HighScoreDataのLoadHighScores(文字列のファイル名) { HighScoreDataデータ。 //セーブゲーム
string fullpath = "Content/highscores.lst";
// Open the file
FileStream stream = File.Open(fullpath, FileMode.Open,FileAccess.Read);
try
{ // Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{ // Close the file
stream.Close();
}
return (data);
}
XBOX PORTのパスを取得します。(エラーで)
のpublic static HighScoreDataのLoadHighScores(文字列コンテナ、文字列filename) { HighScoreDataデータ。
if (Global.SaveDevice.FileExists(container, filename))
{
Global.SaveDevice.Load(container, filename, stream =>
{
File.Open(Global.fileName_options, FileMode.Open,//FileMode.OpenOrCreate,
FileAccess.Read);
try
{
// Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{
// Close the file
stream.Close();
}
});
}
return (data);
}
+1私はデスクトップCLRは多くのより寛容であるところのXboxは... – MattDavey
おかげでこのことについて非常にうるさいことができますが、データが構造体であるとして、それが動作しないと、彼らは非ある気づきました-nullable - その他のアイデアですか? public構造体HighScoreData { public string [] Name; public int []スコア。 public int [] Level; public int Count; 公開HighScoreData(int count) { 名前=新しい文字列[count]; スコア=新しいint [count]; レベル=新しいint [カウント];カウント=カウント; } } – user1003211
その場合、data = new MyStruct()を入れるだけです。コンパイラは、データに値が割り当てられていない状態でメソッドの終了に到達する可能性があると不平を言っています。 – MattDavey