2011-10-19 13 views
0

私は自分のPC XNAゲームをXboxに移植しようとしていますが、ハイスコア用の既存のPCファイル管理と一緒にxna easystorageを実装しようとしました。基本的に結合しようとしていますhttp://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspxhttp://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); 
    } 

答えて

2

返却前にデータを割り当てます。 ;)

data = (if_struct) ? new your_struct() : null; 
    if (Global.SaveDevice.FileExists(container, filename)) 
    { 
    ...... 
    } 
    return (data); 
} 
+0

+1私はデスクトップCLRは多くのより寛容であるところのXboxは... – MattDavey

+0

おかげでこのことについて非常にうるさいことができますが、データが構造体であるとして、それが動作しないと、彼らは非ある気づきました-nullable - その他のアイデアですか? public構造体HighScoreData { public string [] Name; public int []スコア。 public int [] Level; public int Count; 公開HighScoreData(int count) { 名前=新しい文字列[count]; スコア=新しいint [count]; レベル=新しいint [カウント];カウント=カウント; } } – user1003211

+1

その場合、data = new MyStruct()を入れるだけです。コンパイラは、データに値が割り当てられていない状態でメソッドの終了に到達する可能性があると不平を言っています。 – MattDavey

関連する問題